@nativescript/angular 21.0.0-rc.1 → 21.0.0-rc.2
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nativescript-angular.mjs","sources":["../../../../packages/angular/src/lib/views/invisible-nodes.ts","../../../../packages/angular/src/lib/views/utils.ts","../../../../packages/angular/src/lib/tokens.ts","../../../../packages/angular/src/lib/property-filter.ts","../../../../packages/angular/src/lib/view-refs.ts","../../../../packages/angular/src/lib/app-host-view.ts","../../../../packages/angular/src/lib/loading.service.ts","../../../../packages/angular/src/lib/trace.ts","../../../../packages/angular/src/lib/application.ts","../../../../packages/angular/src/lib/platform-ref.ts","../../../../packages/angular/src/lib/nativescript-xhr-factory.ts","../../../../packages/angular/src/lib/element-registry/metas.ts","../../../../packages/angular/src/lib/element-registry/registry.ts","../../../../packages/angular/src/lib/element-registry/common-views.ts","../../../../packages/angular/src/lib/view-util.ts","../../../../packages/angular/src/lib/nativescript-renderer.ts","../../../../packages/angular/src/lib/cdk/portal/portal-errors.ts","../../../../packages/angular/src/lib/cdk/portal/common.ts","../../../../packages/angular/src/lib/cdk/portal/portal-directives.ts","../../../../packages/angular/src/lib/cdk/portal/nsdom-portal-outlet.ts","../../../../packages/angular/src/lib/cdk/detached-loader.ts","../../../../packages/angular/src/lib/cdk/frame-page/page.service.ts","../../../../packages/angular/src/lib/cdk/frame-page/frame-page.component.ts","../../../../packages/angular/src/lib/cdk/frame-page/frame.directive.ts","../../../../packages/angular/src/lib/cdk/frame-page/page.directive.ts","../../../../packages/angular/src/lib/cdk/frame-page/frame-page.module.ts","../../../../packages/angular/src/lib/utils/lang-facade.ts","../../../../packages/angular/src/lib/cdk/action-bar/index.ts","../../../../packages/angular/src/lib/utils/general.ts","../../../../packages/angular/src/lib/cdk/list-view/list-view.component.ts","../../../../packages/angular/src/lib/legacy/frame.service.ts","../../../../packages/angular/src/lib/legacy/router/ns-location-utils.ts","../../../../packages/angular/src/lib/legacy/router/ns-location-strategy.ts","../../../../packages/angular/src/lib/legacy/directives/dialogs.ts","../../../../packages/angular/src/lib/utils/ng-safe.ts","../../../../packages/angular/src/lib/cdk/tab-view/index.ts","../../../../packages/angular/src/lib/cdk/platform-filters/android-filter.component.ts","../../../../packages/angular/src/lib/cdk/platform-filters/ios-filter.component.ts","../../../../packages/angular/src/lib/cdk/platform-filters/apple-filter.component.ts","../../../../packages/angular/src/lib/cdk/platform-filters/vision-filter.component.ts","../../../../packages/angular/src/lib/nativescript-common.module.ts","../../../../packages/angular/src/lib/nativescript.ts","../../../../packages/angular/src/lib/platform-nativescript.ts","../../../../packages/angular/src/lib/rootcomposite.module.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-config.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-ref.ts","../../../../packages/angular/src/lib/cdk/dialog/native-modal-ref.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-services.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-content-directives.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-module.ts","../../../../packages/angular/src/lib/file-system/ns-file-system.ts","../../../../packages/angular/src/lib/detached-loader-utils.ts","../../../../packages/angular/src/lib/forms/value-accessors/base-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/text-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/checked-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/date-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/time-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/number-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/selectedIndex-value-accessor.ts","../../../../packages/angular/src/lib/forms/forms.module.ts","../../../../packages/angular/src/lib/animations/utils.ts","../../../../packages/angular/src/lib/animations/animation-player.ts","../../../../packages/angular/src/lib/animations/animation-driver.ts","../../../../packages/angular/src/lib/animations/animations.module.ts","../../../../packages/angular/src/lib/http/http-utils.ts","../../../../packages/angular/src/lib/http/ns-http-backend.ts","../../../../packages/angular/src/lib/http/http-client.module.ts","../../../../packages/angular/src/lib/legacy/router/page-router-outlet-utils.ts","../../../../packages/angular/src/lib/legacy/router/ns-route-reuse-strategy.ts","../../../../packages/angular/src/lib/legacy/router/router-extensions.ts","../../../../packages/angular/src/lib/legacy/router/ns-router-link.ts","../../../../packages/angular/src/lib/legacy/router/private-imports/router-url-tree.ts","../../../../packages/angular/src/lib/legacy/router/ns-router-link-active.ts","../../../../packages/angular/src/lib/legacy/router/page-router-outlet.ts","../../../../packages/angular/src/lib/legacy/router/ns-platform-location.ts","../../../../packages/angular/src/lib/legacy/router/ns-empty-outlet.component.ts","../../../../packages/angular/src/lib/legacy/router/router.module.ts","../../../../packages/angular/src/lib/nativescript-ng-zone.ts","../../../../packages/angular/src/index.ts","../../../../packages/angular/src/nativescript-angular.ts"],"sourcesContent":["import { View } from '@nativescript/core';\nimport { NgView } from './view-types';\n\nconst getClassName = (instance) => instance.constructor.name;\n\nexport abstract class InvisibleNode extends View implements NgView {\n meta: { skipAddToDom: boolean };\n nodeType: number;\n nodeName: string;\n // @ts-expect-error setter\n parentNode: NgView;\n nextSibling: NgView;\n previousSibling: NgView;\n firstChild: NgView;\n lastChild: NgView;\n ngCssClasses: Map<string, boolean>;\n\n constructor(protected name: string = '') {\n super();\n\n this.nodeType = 1;\n this.nodeName = getClassName(this);\n }\n\n toString() {\n return `${this.nodeName}(${this.id})-${this.name}`;\n }\n}\n\nexport class CommentNode extends InvisibleNode {\n protected static id = 0;\n\n constructor(value?: string) {\n super(value);\n\n this.meta = {\n skipAddToDom: true,\n };\n this.id = CommentNode.id.toString();\n CommentNode.id += 1;\n }\n}\n\nexport class TextNode extends InvisibleNode {\n public static textChangeEvent = 'textChange';\n protected static id = 0;\n protected _text = '';\n get text() {\n return this._text;\n }\n set text(t: string) {\n this._text = t;\n this.notify({ eventName: TextNode.textChangeEvent, object: this, value: t });\n }\n callbackMap = new Map<unknown, Array<(evt: any) => void>>();\n\n constructor(value?: string) {\n super(value);\n this._text = value;\n\n this.meta = {\n skipAddToDom: true,\n };\n this.id = TextNode.id.toString();\n TextNode.id += 1;\n }\n\n registerTextChange(callback: (text: string) => void, id: unknown) {\n const cb = (evt) => callback(evt.value);\n const cbArr = this.callbackMap.get(id) || [];\n cbArr.push(cb);\n this.callbackMap.set(id, cbArr);\n this.on('textChange', cb);\n }\n\n unregisterTextChange(id: unknown) {\n const cbArr = this.callbackMap.get(id) || [];\n cbArr.forEach((cb) => this.off('textChange', cb));\n this.callbackMap.delete(id);\n }\n}\n","import { ContentView, LayoutBase, ProxyViewContainer, View, ViewBase } from '@nativescript/core';\nimport { InvisibleNode } from './invisible-nodes';\nimport type { NgContentView, NgLayoutBase, NgView } from './view-types';\n\nexport function isDetachedElement(element: View | NgView): boolean {\n return element && (<NgView>element).meta && (<NgView>element).meta.skipAddToDom;\n}\n\nexport function isView(view: unknown): view is NgView {\n return view instanceof View;\n}\n\nexport function isInvisibleNode(view: unknown): view is InvisibleNode {\n return view instanceof InvisibleNode;\n}\n\nexport function isLayout(view: unknown): view is NgLayoutBase {\n return view instanceof LayoutBase;\n}\n\nexport function isContentView(view: unknown): view is NgContentView {\n return view instanceof ContentView;\n}\n\nexport function getFirstNativeLikeView(view: View, extractFromNSParent = false) {\n if (view instanceof ProxyViewContainer) {\n if (view.getChildrenCount() === 0) {\n return null;\n }\n return getFirstNativeLikeView(view.getChildAt(0));\n }\n\n if (extractFromNSParent) {\n const node = view.parentNode;\n detachViewFromParent(view);\n view.parentNode = node;\n }\n return view;\n}\n\nexport function detachViewFromParent(view: View) {\n const parent = <NgView>view?.parent;\n if (!parent) {\n return;\n }\n if (parent.meta && parent.meta.removeChild) {\n parent.meta.removeChild(parent, view);\n } else if (isLayout(parent)) {\n parent.removeChild(view);\n } else if (isContentView(parent) && parent.content === view) {\n parent.content = null;\n } else if (isView(parent)) {\n parent._removeView(view);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { IDevice, Page, View } from '@nativescript/core';\n\nexport const APP_ROOT_VIEW = new InjectionToken<View>('NativeScriptAppRootView');\nexport const NATIVESCRIPT_ROOT_MODULE_ID = new InjectionToken<string | number>('NativeScriptRootModuleId');\n\nexport const START_PATH = new InjectionToken<Promise<string> | string>('NativeScriptStartPath');\nexport const ENABLE_REUSABE_VIEWS = new InjectionToken<boolean>('NativeScriptEnableReusableViews');\n\nexport type PageFactory = (options: PageFactoryOptions) => Page;\nexport interface PageFactoryOptions {\n isBootstrap?: boolean;\n isLivesync?: boolean;\n isModal?: boolean;\n isNavigation?: boolean;\n componentType?: any;\n}\n\nexport const DISABLE_ROOT_VIEW_HANDLING = new InjectionToken<boolean>('NativeScriptDisableRootViewHandling');\nexport const DEVICE = new InjectionToken<IDevice>('NativeScriptDevice');\nexport const PAGE_FACTORY = new InjectionToken<PageFactory>('NativeScriptPageFactory');\nexport const defaultPageFactory: PageFactory = function (_opts: PageFactoryOptions) {\n return new Page();\n};\n\nexport const PREVENT_CHANGE_EVENTS_DURING_CD = new InjectionToken<boolean>('NativeScriptPreventChangeEventsDuringCd');\nexport const PREVENT_SPECIFIC_EVENTS_DURING_CD = new InjectionToken<string[]>('NativeScriptPreventSpecificEventsDuringCd');\n","import { Inject, InjectionToken } from '@angular/core';\nimport { DEVICE } from './tokens';\nimport { Device, platformNames } from '@nativescript/core';\n\nexport interface NamespaceFilter {\n runsIn(namespace: string, next: (namespace: string) => boolean | undefined): boolean | undefined;\n}\n\nexport class PlatformNamespaceFilter implements NamespaceFilter {\n constructor(@Inject(DEVICE) private device: typeof Device) {}\n runsIn(namespace: string, next: (namespace: string) => boolean | undefined): boolean | undefined {\n if (namespace === 'android') {\n return this.device.os === platformNames.android;\n }\n if (namespace === 'ios') {\n return this.device.os === platformNames.ios;\n }\n return next(namespace);\n }\n}\n\nexport const NAMESPACE_FILTERS = new InjectionToken<NamespaceFilter[]>('NativeScriptNamespaceFilter');\n","import { ComponentRef, EmbeddedViewRef } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { detachViewFromParent, getFirstNativeLikeView, InvisibleNode } from './views';\n\nexport interface NgViewRef<T> {\n view: View;\n ref: EmbeddedViewRef<T> | ComponentRef<T>;\n firstNativeLikeView: View;\n}\n\nexport interface NgViewTemplate<T> {\n create(context?: T): View;\n update(view: View, context?: T): void;\n attach(view: View): void;\n detach(view: View): void;\n dispose(view: View): void;\n}\n\nexport class NgViewRef<T> implements NgViewRef<T> {\n /**\n * Component's view instance or first valid template view\n */\n view: View;\n ref: EmbeddedViewRef<T> | ComponentRef<T>;\n /**\n * First valid view that isn't strictly logical (ContentView, ProxyViewContainer, ...)\n * This view *very* likely has a nativeView associated to it.\n */\n firstNativeLikeView: View;\n\n constructor(ref: EmbeddedViewRef<T> | ComponentRef<T>) {\n this.ref = ref;\n this.view = ref instanceof ComponentRef ? ref.location.nativeElement : ref.rootNodes.find((v) => !(v instanceof InvisibleNode));\n this.firstNativeLikeView = getFirstNativeLikeView(this.view);\n }\n\n detachNativeLikeView() {\n detachViewFromParent(this.firstNativeLikeView);\n }\n}\n","import { ContentView, View, ProxyViewContainer, GridLayout, Color, Application } from '@nativescript/core';\n\nexport class AppHostView extends ContentView {\n private _ngAppRoot: View;\n private _content: View;\n private timeout: any = -1;\n\n constructor(backgroundColor: Color) {\n super();\n this.backgroundColor = backgroundColor;\n }\n\n get ngAppRoot(): View {\n return this._ngAppRoot;\n }\n\n set ngAppRoot(value: View) {\n this._ngAppRoot = value;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n get content(): View {\n return this._content;\n }\n\n set content(value: View) {\n if (this._content) {\n this._content.parentNode = undefined;\n }\n\n this._content = value;\n\n if (value) {\n this._content.parentNode = this;\n }\n\n this.ngAppRoot = value;\n\n if (this._content instanceof ProxyViewContainer) {\n const grid = new GridLayout();\n grid.backgroundColor = this.backgroundColor;\n grid.addChild(this._content);\n this.ngAppRoot = grid;\n }\n if (this.ngAppRoot) {\n // maybe use this approach\n // this.scheduleRootChange();\n }\n }\n\n scheduleRootChange() {\n if (this.timeout === -1) {\n this.timeout = setTimeout(() => {\n //console.log(this.ngAppRoot);\n Application.resetRootView({\n create: () => this.content,\n });\n this.timeout = -1;\n }, 0);\n }\n }\n}\n\nexport class AppHostAsyncView extends GridLayout {\n constructor(backgroundColor: Color) {\n super();\n this.backgroundColor = backgroundColor;\n }\n\n get ngAppRoot(): View {\n return this;\n }\n\n set ngAppRoot(value: View) {\n // ignored\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NativeScriptLoadingService implements OnDestroy {\n private mainModuleReady$ = new BehaviorSubject(false);\n readyToDestroy$ = new BehaviorSubject(true);\n onMainModuleReady$ = this.mainModuleReady$.pipe(filter((ready) => ready));\n\n /**\n * delays destroying this module until `notifyReadyToDestroy()`.\n * remember to call `notifyReadyToDestroy()` when done!\n */\n waitUntilNotified() {\n this.readyToDestroy$.next(false);\n }\n\n /**\n * notifies this module is ready to be destroyed\n */\n notifyReadyToDestroy() {\n this.readyToDestroy$.next(true);\n }\n isMainModuleReady() {\n return this.mainModuleReady$.value;\n }\n ngOnDestroy() {\n this.readyToDestroy$.complete();\n this.mainModuleReady$.complete();\n }\n\n /**\n * This funcion is called by the bootstrap code when the app is ready\n * @internal\n */\n _notifyMainModuleReady() {\n this.mainModuleReady$.next(true);\n }\n}\n","import { Trace } from '@nativescript/core';\n\nexport class NativeScriptDebug {\n static readonly animationsTraceCategory = 'ns-animations';\n static readonly rendererTraceCategory = 'ns-renderer';\n static readonly viewUtilCategory = 'ns-view-util';\n static readonly routerTraceCategory = 'ns-router';\n static readonly routeReuseStrategyTraceCategory = 'ns-route-reuse-strategy';\n static readonly listViewTraceCategory = 'ns-list-view';\n static readonly bootstrapCategory = 'bootstrap';\n // TODO: migrate all usage to this - avoids extraneous method executions\n static readonly enabled = Trace.isEnabled();\n\n static isLogEnabled() {\n return Trace.isEnabled();\n }\n\n static animationsLog(message: string): void {\n Trace.write(message, NativeScriptDebug.animationsTraceCategory);\n }\n\n static rendererLog(msg): void {\n Trace.write(msg, NativeScriptDebug.rendererTraceCategory);\n }\n\n static rendererError(message: string): void {\n Trace.write(message, NativeScriptDebug.rendererTraceCategory, Trace.messageType.error);\n }\n\n static viewUtilLog(msg): void {\n Trace.write(msg, NativeScriptDebug.viewUtilCategory);\n }\n\n static routerLog(message: string): void {\n Trace.write(message, NativeScriptDebug.routerTraceCategory);\n }\n\n static routerError(message: string): void {\n Trace.write(message, NativeScriptDebug.routerTraceCategory, Trace.messageType.error);\n }\n\n static routeReuseStrategyLog(message: string): void {\n Trace.write(message, NativeScriptDebug.routeReuseStrategyTraceCategory);\n }\n\n static styleError(message: string): void {\n Trace.write(message, Trace.categories.Style, Trace.messageType.error);\n }\n\n static listViewLog(message: string): void {\n Trace.write(message, NativeScriptDebug.listViewTraceCategory);\n }\n\n static listViewError(message: string): void {\n Trace.write(message, NativeScriptDebug.listViewTraceCategory, Trace.messageType.error);\n }\n\n static bootstrapLog(message: string): void {\n Trace.write(message, NativeScriptDebug.bootstrapCategory);\n }\n\n static bootstrapLogError(message: string): void {\n Trace.write(message, NativeScriptDebug.bootstrapCategory, Trace.messageType.error);\n }\n}\n","import { ApplicationRef, EnvironmentProviders, NgModuleRef, NgZone, PlatformRef, Provider } from '@angular/core';\nimport {\n Application,\n ApplicationEventData,\n Color,\n LaunchEventData,\n LayoutBase,\n profile,\n removeTaggedAdditionalCSS,\n TextView,\n Utils,\n View,\n} from '@nativescript/core';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\nimport { AppHostView } from './app-host-view';\nimport { NativeScriptLoadingService } from './loading.service';\nimport { APP_ROOT_VIEW, DISABLE_ROOT_VIEW_HANDLING, NATIVESCRIPT_ROOT_MODULE_ID } from './tokens';\nimport { NativeScriptDebug } from './trace';\n\nexport interface AppLaunchView extends LayoutBase {\n // called when the animation is to begin\n startAnimation?: () => void;\n // called when bootstrap is complete and cleanup can begin\n // should resolve when animation is completely finished\n cleanup?: () => Promise<any>;\n\n // do you want to handle setting this as a rootview manually?\n __disable_root_view_handling?: boolean;\n}\n\nexport function disableRootViewHanding(view: AppLaunchView) {\n view.__disable_root_view_handling = true;\n}\n\nexport type NgModuleReason = 'hotreload' | 'applaunch' | 'appexit';\n\nexport type NgModuleEvent =\n | {\n moduleType: 'main' | 'loading' | string;\n reference: NgModuleRef<unknown> | ApplicationRef;\n reason: NgModuleReason | string;\n }\n | {\n moduleType: 'platform';\n reference: PlatformRef;\n reason: NgModuleReason | string;\n };\n\nexport const preAngularDisposal$ = new Subject<NgModuleEvent>();\nexport const postAngularBootstrap$ = new Subject<NgModuleEvent>();\n\n/**\n * @deprecated\n */\nexport const onBeforeLivesync: Observable<NgModuleRef<any>> = preAngularDisposal$.pipe(\n filter((v) => v.moduleType === 'main' && v.reason === 'hotreload'),\n map((v) => v.reference as NgModuleRef<any>),\n);\n/**\n * @deprecated\n */\nexport const onAfterLivesync: Observable<{\n moduleRef?: NgModuleRef<any>;\n error?: Error;\n}> = postAngularBootstrap$.pipe(\n filter((v) => v.moduleType === 'main'),\n map((v) => ({ moduleRef: v.reference as NgModuleRef<any> })),\n);\nexport interface AppRunOptions<T, K> {\n /**\n * Runs when the app is launched or during HMR.\n * May not run immediately if the app was started in background (e.g. push notification)\n * @param reason reason for bootstrap. @see {NgModuleReason}\n * @returns Promise to the bootstrapped NgModuleRef\n */\n appModuleBootstrap: (reason: NgModuleReason) => Promise<NgModuleRef<T> | ApplicationRef>;\n /**\n * Loads a custom NgModule for the loading screen.\n * This loads only if appModuleBootstrap doesn't resolve synchronously (e.g. async APP_INITIALIZER).\n * @param reason reason for bootstrap. @see {NgModuleReason}\n * @returns Promise to the bootstrapped NgModuleRef. Must resolve immediately (no async initialization)\n */\n loadingModule?: (reason: NgModuleReason) => Promise<NgModuleRef<K> | ApplicationRef>;\n /**\n * Simpler than loadingModule, this will show a view while the app is bootstrapping asynchronously.\n * @param reason reason for bootstrap. @see {NgModuleReason}\n * @returns View that will be shown while app boots\n */\n launchView?: (reason: NgModuleReason) => AppLaunchView;\n /**\n * Wether we are running in an embedded context (e.g. embedding NativeScript in an existing app)\n */\n embedded?: boolean;\n}\n\nif (import.meta['webpackHot']) {\n import.meta['webpackHot'].decline();\n global.__onLiveSyncCore = () => {\n Application.getRootView()?._onCssStateChange();\n // all other changes are applied by runNativeScriptAngularApp\n };\n}\n\nfunction emitModuleBootstrapEvent<T>(\n ref: NgModuleRef<T> | ApplicationRef,\n name: 'main' | 'loading',\n reason: NgModuleReason,\n) {\n postAngularBootstrap$.next({\n moduleType: name,\n reference: ref,\n reason,\n });\n}\n\nfunction destroyRef<T>(ref: NgModuleRef<T> | ApplicationRef, name: 'main' | 'loading', reason: NgModuleReason): void;\nfunction destroyRef(ref: PlatformRef, reason: NgModuleReason): void;\nfunction destroyRef<T>(ref: PlatformRef | ApplicationRef | NgModuleRef<T>, name?: string, reason?: string): void {\n if (ref) {\n if (ref instanceof PlatformRef) {\n preAngularDisposal$.next({\n moduleType: 'platform',\n reference: ref,\n reason: name,\n });\n }\n if (ref instanceof NgModuleRef || ref instanceof ApplicationRef) {\n preAngularDisposal$.next({\n moduleType: name,\n reference: ref,\n reason,\n });\n }\n ref.destroy();\n }\n}\n\nfunction runZoneSyncTask(fn: () => void) {\n if (typeof Zone === 'undefined') {\n return;\n }\n const zone = Zone.current;\n const task = zone.scheduleEventTask(\n 'sync_function',\n fn,\n {},\n () => {\n //\n },\n () => {\n //\n },\n );\n try {\n // console.log(task.state);\n task.invoke();\n // zone.runTask(task);\n // console.log(task.state);\n } finally {\n zone.cancelTask(task);\n }\n}\n\nfunction ZoneCanWorkSync() {\n let canRunSync = false;\n runZoneSyncTask(() => {\n Promise.resolve().then(() => (canRunSync = true));\n });\n return canRunSync;\n}\n\n/**\n * Tests if global.__drainMicrotaskQueue can be used to drain microtasks\n * Because of Zone.js, even though the native queue might be drained, zone microtasks might not be\n * @param makeTestDrain should it drain the current microtask queue to ensure the queue can be drained\n * @returns if global.__drainMicrotaskQueue can be called\n */\nfunction nativeQueueCanBeDrained(makeTestDrain: boolean) {\n if (typeof (global as any).__drainMicrotaskQueue !== 'function') {\n return false;\n }\n if (!makeTestDrain) {\n return true;\n }\n let canRunSync = false;\n Promise.resolve().then(() => (canRunSync = true));\n (global as any).__drainMicrotaskQueue();\n return canRunSync;\n}\n\n/**\n * Runs a function in the most synchronous way possible\n * @param fn function to run\n * @param done function to chain after done\n */\nfunction runSynchronously(fn: () => void, done?: () => void): void {\n if (typeof Zone !== 'undefined' && ZoneCanWorkSync()) {\n runZoneSyncTask(fn);\n done?.();\n return;\n }\n if (nativeQueueCanBeDrained(true)) {\n fn();\n (global as any).__drainMicrotaskQueue();\n done?.();\n return;\n }\n fn();\n if (done) {\n Utils.queueMacrotask(done);\n }\n}\n\nexport interface ApplicationConfig {\n /**\n * List of providers that should be available to the root component and all its children.\n */\n providers: Array<Provider | EnvironmentProviders>;\n}\n\nexport function runNativeScriptAngularApp<T, K>(options: AppRunOptions<T, K>) {\n let mainModuleRef: NgModuleRef<T> | ApplicationRef = null;\n let loadingModuleRef: NgModuleRef<K> | ApplicationRef;\n let platformRef: PlatformRef = null;\n let bootstrapId = -1;\n const updatePlatformRef = (moduleRef: NgModuleRef<T | K> | ApplicationRef, reason: NgModuleReason) => {\n const newPlatformRef = moduleRef.injector.get(PlatformRef);\n if (newPlatformRef === platformRef) {\n return;\n }\n destroyRef(platformRef, reason);\n platformRef = newPlatformRef;\n platformRef.onDestroy(() => (platformRef = platformRef === newPlatformRef ? null : platformRef));\n };\n let launchEventDone = true;\n let targetRootView: View = null;\n const setRootView = (ref: NgModuleRef<T | K> | ApplicationRef | View) => {\n if (bootstrapId === -1) {\n // treat edge cases\n return;\n }\n if (ref instanceof NgModuleRef || ref instanceof ApplicationRef) {\n if (ref.injector.get(DISABLE_ROOT_VIEW_HANDLING, false)) {\n return;\n }\n } else {\n if (ref['__disable_root_view_handling']) {\n return;\n }\n }\n Application.getRootView()?._closeAllModalViewsInternal(); // cleanup old rootview\n NativeScriptDebug.bootstrapLog(`Setting RootView ${launchEventDone ? 'outside of' : 'during'} launch event`);\n // TODO: check for leaks when root view isn't properly destroyed\n if (ref instanceof View) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.bootstrapLog(`Setting RootView to ${ref}`);\n }\n if (options.embedded) {\n Application.run({ create: () => ref });\n } else if (launchEventDone) {\n Application.resetRootView({ create: () => ref });\n } else {\n targetRootView = ref;\n }\n return;\n }\n const view = ref.injector.get(APP_ROOT_VIEW) as AppHostView | View;\n const newRoot = view instanceof AppHostView ? view.content : view;\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.bootstrapLog(`Setting RootView to ${newRoot}`);\n }\n if (options.embedded) {\n Application.run({ create: () => newRoot });\n } else if (launchEventDone) {\n Application.resetRootView({ create: () => newRoot });\n } else {\n targetRootView = newRoot;\n }\n };\n const showErrorUI = (error: Error) => {\n const message = error.message + '\\n\\n' + error.stack;\n const errorTextBox = new TextView();\n errorTextBox.text = message;\n errorTextBox.color = new Color('red');\n setRootView(errorTextBox);\n };\n const bootstrapRoot = (reason: NgModuleReason) => {\n try {\n bootstrapId = Date.now();\n const currentBootstrapId = bootstrapId;\n let bootstrapped = false;\n let onMainBootstrap = () => {\n setRootView(mainModuleRef);\n };\n runSynchronously(\n () =>\n options.appModuleBootstrap(reason).then(\n (ref) => {\n if (currentBootstrapId !== bootstrapId) {\n // this module is old and not needed anymore\n // this may happen when developer uses async app initializer and the user exits the app before this bootstraps\n ref.destroy();\n return;\n }\n mainModuleRef = ref;\n\n (ref instanceof ApplicationRef ? ref.components[0] : ref).onDestroy(\n () => (mainModuleRef = mainModuleRef === ref ? null : mainModuleRef),\n );\n updatePlatformRef(ref, reason);\n const styleTag = ref.injector.get(NATIVESCRIPT_ROOT_MODULE_ID);\n (ref instanceof ApplicationRef ? ref.components[0] : ref).onDestroy(() => {\n removeTaggedAdditionalCSS(styleTag);\n });\n bootstrapped = true;\n onMainBootstrap();\n emitModuleBootstrapEvent(ref, 'main', reason);\n // bootstrapped component: (ref as any)._bootstrapComponents[0];\n },\n (err) => {\n bootstrapped = true;\n NativeScriptDebug.bootstrapLogError(`Error bootstrapping app module:\\n${err.message}\\n\\n${err.stack}`);\n showErrorUI(err);\n throw err;\n },\n ),\n () => {\n if (currentBootstrapId !== bootstrapId) {\n return;\n }\n if (!bootstrapped) {\n if (options.loadingModule) {\n runSynchronously(() =>\n options.loadingModule(reason).then(\n (loadingRef) => {\n if (currentBootstrapId !== bootstrapId) {\n // this module is old and not needed anymore\n // this may happen when developer uses async app initializer and the user exits the app before this bootstraps\n loadingRef.destroy();\n return;\n }\n loadingModuleRef = loadingRef;\n (loadingModuleRef instanceof ApplicationRef\n ? loadingModuleRef.components[0]\n : loadingModuleRef\n ).onDestroy(() => (loadingModuleRef = loadingModuleRef === loadingRef ? null : loadingModuleRef));\n updatePlatformRef(loadingRef, reason);\n const styleTag = loadingModuleRef.injector.get(NATIVESCRIPT_ROOT_MODULE_ID);\n (loadingModuleRef instanceof ApplicationRef\n ? loadingModuleRef.components[0]\n : loadingModuleRef\n ).onDestroy(() => {\n removeTaggedAdditionalCSS(styleTag);\n });\n setRootView(loadingRef);\n onMainBootstrap = () => {\n // delay showing the new rootview to avoid flashes\n Utils.queueMacrotask(() => {\n const loadingService = loadingModuleRef.injector.get(NativeScriptLoadingService);\n loadingModuleRef.injector.get(NgZone).run(() => {\n loadingService._notifyMainModuleReady();\n });\n loadingService.readyToDestroy$\n .pipe(\n filter((ready) => ready),\n take(1),\n )\n .subscribe(() => {\n destroyRef(loadingModuleRef, 'loading', reason);\n loadingModuleRef = null;\n setRootView(mainModuleRef);\n });\n });\n };\n emitModuleBootstrapEvent(loadingModuleRef, 'loading', reason);\n },\n (err) => {\n NativeScriptDebug.bootstrapLogError(\n `Error bootstrapping loading module:\\n${err.message}\\n\\n${err.stack}`,\n );\n showErrorUI(err);\n throw err;\n },\n ),\n );\n } else if (options.launchView) {\n let launchView = options.launchView(reason);\n setRootView(launchView);\n if (launchView.startAnimation) {\n setTimeout(() => {\n // ensure launch animation is executed after launchView added to view stack\n launchView.startAnimation();\n });\n }\n onMainBootstrap = () => {\n // delay showing the new rootview to avoid flashes\n Utils.queueMacrotask(() => {\n if (launchView.cleanup) {\n launchView\n .cleanup()\n .catch()\n .then(() => {\n launchView = null;\n setRootView(mainModuleRef);\n });\n } else {\n launchView = null;\n setRootView(mainModuleRef);\n }\n });\n };\n } else {\n console.warn(\n 'App is bootstrapping asynchronously (likely APP_INITIALIZER) but did not provide a launchView or LoadingModule.',\n );\n }\n }\n },\n );\n } catch (err) {\n NativeScriptDebug.bootstrapLogError(`Error in Bootstrap Function:\\n${err.message}\\n\\n${err.stack}`);\n }\n };\n const disposePlatform = (reason: NgModuleReason) => {\n destroyRef(platformRef, reason);\n platformRef = null;\n };\n const disposeLastModules = (reason: NgModuleReason) => {\n // reset bootstrap ID to make sure any modules bootstrapped after this are discarded\n bootstrapId = -1;\n destroyRef(loadingModuleRef, 'loading', reason);\n loadingModuleRef = null;\n destroyRef(mainModuleRef, 'main', reason);\n mainModuleRef = null;\n };\n const launchCallback = profile('@nativescript/angular/platform-common.launchCallback', (args: LaunchEventData) => {\n launchEventDone = false;\n bootstrapRoot('applaunch');\n launchEventDone = true;\n args.root = targetRootView || null;\n });\n const exitCallback = profile('@nativescript/angular/platform-common.exitCallback', (args: ApplicationEventData) => {\n disposeLastModules('appexit');\n });\n\n let oldAddEventListener;\n if (typeof Zone !== 'undefined' && global.NativeScriptGlobals?.events?.[Zone.__symbol__('addEventListener')]) {\n oldAddEventListener = global.NativeScriptGlobals.events.addEventListener;\n global.NativeScriptGlobals.events.addEventListener =\n global.NativeScriptGlobals.events[Zone.__symbol__('addEventListener')];\n }\n if (!options.embedded) {\n Application.on(Application.launchEvent, launchCallback);\n }\n Application.on(Application.exitEvent, exitCallback);\n if (oldAddEventListener) {\n global.NativeScriptGlobals.events.addEventListener = oldAddEventListener;\n }\n if (import.meta['webpackHot']) {\n // handle HMR Application.run\n global['__dispose_app_ng_platform__'] = () => {\n disposePlatform('hotreload');\n };\n global['__dispose_app_ng_modules__'] = () => {\n disposeLastModules('hotreload');\n };\n global['__bootstrap_app_ng_modules__'] = () => {\n bootstrapRoot('hotreload');\n };\n global['__cleanup_ng_hot__'] = () => {\n Application.off(Application.launchEvent, launchCallback);\n Application.off(Application.exitEvent, exitCallback);\n disposeLastModules('hotreload');\n disposePlatform('hotreload');\n };\n global['__reboot_ng_modules__'] = (shouldDisposePlatform: boolean = false) => {\n disposeLastModules('hotreload');\n if (shouldDisposePlatform) {\n disposePlatform('hotreload');\n }\n bootstrapRoot('hotreload');\n };\n\n if (!Application.hasLaunched()) {\n Application.run();\n return;\n }\n bootstrapRoot('hotreload');\n return;\n }\n\n if (options.embedded) {\n bootstrapRoot('applaunch');\n } else {\n Application.run();\n }\n}\n","import { CompilerOptions, Injector, NgModuleRef, NgZone, PlatformRef, Type } from '@angular/core';\nimport { ɵNgModuleFactory as NgModuleFactory } from '@angular/core';\nimport { AppLaunchView, AppRunOptions, runNativeScriptAngularApp } from './application';\n\n/**\n * Provides additional options to the bootstraping process.\n *\n *\n */\nexport interface BootstrapOptions {\n /**\n * Optionally specify which `NgZone` should be used.\n *\n * - Provide your own `NgZone` instance.\n * - `zone.js` - Use default `NgZone` which requires `Zone.js`.\n * - `noop` - Use `NoopNgZone` which does nothing.\n */\n ngZone?: NgZone | 'zone.js' | 'noop';\n /**\n * Optionally specify coalescing event change detections or not.\n * Consider the following case.\n *\n * <div (click)=\"doSomething()\">\n * <button (click)=\"doSomethingElse()\"></button>\n * </div>\n *\n * When button is clicked, because of the event bubbling, both\n * event handlers will be called and 2 change detections will be\n * triggered. We can colesce such kind of events to only trigger\n * change detection only once.\n *\n * By default, this option will be false. So the events will not be\n * coalesced and the change detection will be triggered multiple times.\n * And if this option be set to true, the change detection will be\n * triggered async by scheduling a animation frame. So in the case above,\n * the change detection will only be triggered once.\n */\n ngZoneEventCoalescing?: boolean;\n /**\n * Optionally specify if `NgZone#run()` method invocations should be coalesced\n * into a single change detection.\n *\n * Consider the following case.\n *\n * for (let i = 0; i < 10; i ++) {\n * ngZone.run(() => {\n * // do something\n * });\n * }\n *\n * This case triggers the change detection multiple times.\n * With ngZoneRunCoalescing options, all change detections in an event loop trigger only once.\n * In addition, the change detection executes in requestAnimation.\n *\n */\n ngZoneRunCoalescing?: boolean;\n}\n\nexport class NativeScriptPlatformRefProxy extends PlatformRef {\n options: AppRunOptions<any, any>;\n constructor(private platform: PlatformRef, private launchView?: AppLaunchView) {\n super();\n }\n\n bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>): Promise<NgModuleRef<M>> {\n this.options = {\n appModuleBootstrap: () => this.platform.bootstrapModuleFactory(moduleFactory),\n launchView: () => this.launchView,\n };\n\n runNativeScriptAngularApp(this.options);\n\n return null;\n }\n bootstrapModule<M>(moduleType: Type<M>, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array<CompilerOptions & BootstrapOptions>): Promise<NgModuleRef<M>> {\n this.options = {\n appModuleBootstrap: () => this.platform.bootstrapModule(moduleType, compilerOptions),\n };\n\n runNativeScriptAngularApp(this.options);\n\n return null;\n }\n\n onDestroy(callback: () => void): void {\n this.platform.onDestroy(callback);\n }\n\n get injector(): Injector {\n return this.platform.injector;\n }\n\n destroy(): void {\n this.platform.destroy();\n }\n\n get destroyed(): boolean {\n return this.platform.destroyed;\n }\n}\n","import { XhrFactory } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class NativescriptXhrFactory extends XhrFactory {\n build() {\n return new XMLHttpRequest();\n }\n}\n","import { FormattedString, Frame, Page, Span, TextBase } from '@nativescript/core';\nimport { isInvisibleNode } from '../views/utils';\nimport { NgView, ViewClassMeta } from '../views/view-types';\n\nexport const frameMeta: ViewClassMeta = {\n insertChild: (parent: Frame, child: NgView) => {\n // Page cannot be added to Frame with _addChildFromBuilder (thwos \"use defaultPage\" error)\n if (isInvisibleNode(child)) {\n return;\n } else if (child instanceof Page) {\n parent.navigate({ create: () => child });\n } else {\n throw new Error('Only a Page can be a child of Frame');\n }\n },\n};\n\nexport const formattedStringMeta: ViewClassMeta = {\n insertChild(parent: FormattedString, child: Span, next: Span) {\n const index = parent.spans.indexOf(next);\n if (index > -1) {\n parent.spans.splice(index, 0, child);\n } else {\n parent.spans.push(child);\n }\n },\n removeChild(parent: FormattedString, child: Span) {\n const index = parent.spans.indexOf(child);\n if (index > -1) {\n parent.spans.splice(index, 1);\n }\n },\n};\n\nexport const textBaseMeta: ViewClassMeta = {\n insertChild(parent: TextBase, child, next) {\n if (child instanceof FormattedString) {\n parent.formattedText = child;\n } else if (child instanceof Span) {\n parent.formattedText ??= new FormattedString();\n formattedStringMeta.insertChild(parent.formattedText, child, next);\n }\n },\n removeChild(parent: TextBase, child: NgView) {\n if (!parent.formattedText) return;\n if (child instanceof FormattedString) {\n if (parent.formattedText === child) {\n parent.formattedText = null;\n }\n } else if (child instanceof Span) {\n formattedStringMeta.removeChild(parent.formattedText, child);\n }\n },\n};\n","import { LayoutBase, View } from '@nativescript/core';\nimport { InvisibleNode } from '../views/invisible-nodes';\nimport { ViewClassMeta } from '../views/view-types';\n\nexport type ViewResolver = () => any;\n\nexport const elementMap = new Map<string, { resolver: ViewResolver; meta?: ViewClassMeta }>();\nconst camelCaseSplit = /([a-z0-9])([A-Z])/g;\nconst defaultViewMeta: ViewClassMeta = { skipAddToDom: false };\n\nexport function registerElement(elementName: string, resolver: ViewResolver, meta?: ViewClassMeta): void {\n const entry = { resolver, meta };\n elementMap.set(elementName, entry);\n elementMap.set(elementName.toLowerCase(), entry);\n elementMap.set(elementName.replace(camelCaseSplit, '$1-$2').toLowerCase(), entry);\n}\n\nexport function getViewClass(elementName: string): any {\n const entry = elementMap.get(elementName) || elementMap.get(elementName.toLowerCase());\n if (!entry) {\n throw new TypeError(`No known component for element ${elementName}.`);\n }\n\n try {\n return entry.resolver();\n } catch (e) {\n throw new TypeError(`Could not load view for: ${elementName}.${e}`);\n }\n}\n\nexport function getViewMeta(nodeName: string): ViewClassMeta {\n const entry = elementMap.get(nodeName) || elementMap.get(nodeName.toLowerCase());\n return (entry && entry.meta) || defaultViewMeta;\n}\n\nexport function isKnownView(elementName: string): boolean {\n return elementMap.has(elementName) || elementMap.has(elementName.toLowerCase());\n}\n\nexport function extractSingleViewRecursive(nodes: Array<any>, nestLevel: number): View {\n const actualNodes = nodes.filter((node) => !(node instanceof InvisibleNode));\n\n if (actualNodes.length === 0) {\n throw new Error(`No suitable views found in list template! ` + `Nesting level: ${nestLevel}`);\n } else if (actualNodes.length > 1) {\n throw new Error(`More than one view found in list template!` + `Nesting level: ${nestLevel}`);\n }\n\n const rootLayout = actualNodes[0];\n if (!rootLayout) {\n return extractSingleViewRecursive(rootLayout.children, nestLevel + 1);\n }\n\n const parentLayout = rootLayout.parent;\n if (parentLayout instanceof LayoutBase) {\n const node = rootLayout.parentNode;\n parentLayout.removeChild(rootLayout);\n rootLayout.parentNode = node;\n }\n\n return rootLayout;\n}\n\n/**\n * @deprecated getSingleViewRecursive is deprecated, use extractSingleViewRecursive\n */\nexport function getSingleViewRecursive(nodes: Array<any>, nestLevel: number): View {\n return extractSingleViewRecursive(nodes, nestLevel);\n}\n","import { AbsoluteLayout, ActivityIndicator, Button, ContentView, DatePicker, DockLayout, FlexboxLayout, FormattedString, Frame, GridLayout, HtmlView, Image, Label, ListPicker, ListView, Page, Placeholder, Progress, ProxyViewContainer, Repeater, RootLayout, ScrollView, SearchBar, SegmentedBar, SegmentedBarItem, Slider, Span, StackLayout, Switch, TabView, TextField, TextView, TimePicker, WebView, WrapLayout } from '@nativescript/core';\nimport { formattedStringMeta, frameMeta, textBaseMeta } from './metas';\nimport { registerElement } from './registry';\n\n// Register default NativeScript components\n// Note: ActionBar related components are registerd together with action-bar directives.\nexport function registerNativeScriptViewComponents() {\n if (!(<any>global).__ngRegisteredViews) {\n (<any>global).__ngRegisteredViews = true;\n registerElement('AbsoluteLayout', () => AbsoluteLayout);\n registerElement('ActivityIndicator', () => ActivityIndicator);\n registerElement('Button', () => Button, textBaseMeta);\n registerElement('ContentView', () => ContentView);\n registerElement('DatePicker', () => DatePicker);\n registerElement('DockLayout', () => DockLayout);\n registerElement('Frame', () => Frame, frameMeta);\n registerElement('GridLayout', () => GridLayout);\n registerElement('HtmlView', () => HtmlView);\n registerElement('Image', () => Image);\n // Parse5 changes <Image> tags to <img>. WTF!\n registerElement('img', () => Image);\n registerElement('Label', () => Label, textBaseMeta);\n registerElement('ListPicker', () => ListPicker);\n registerElement('ListView', () => ListView);\n registerElement('Page', () => Page);\n registerElement('Placeholder', () => Placeholder);\n registerElement('Progress', () => Progress);\n registerElement('ProxyViewContainer', () => ProxyViewContainer);\n registerElement('Repeater', () => Repeater);\n registerElement('RootLayout', () => RootLayout);\n registerElement('ScrollView', () => ScrollView);\n registerElement('SearchBar', () => SearchBar);\n registerElement('SegmentedBar', () => SegmentedBar);\n registerElement('SegmentedBarItem', () => SegmentedBarItem);\n registerElement('Slider', () => Slider);\n registerElement('StackLayout', () => StackLayout);\n registerElement('FlexboxLayout', () => FlexboxLayout);\n registerElement('Switch', () => Switch);\n registerElement('TabView', () => TabView);\n registerElement('TextField', () => TextField, textBaseMeta);\n registerElement('TextView', () => TextView, textBaseMeta);\n registerElement('TimePicker', () => TimePicker);\n registerElement('WebView', () => WebView);\n registerElement('WrapLayout', () => WrapLayout);\n registerElement('FormattedString', () => FormattedString, formattedStringMeta);\n registerElement('Span', () => Span);\n }\n}\n","import { unsetValue, View } from '@nativescript/core';\nimport { getViewClass, getViewMeta, isKnownView } from './element-registry';\nimport { NamespaceFilter } from './property-filter';\nimport {\n CommentNode,\n isContentView,\n isDetachedElement,\n isInvisibleNode,\n isLayout,\n isView,\n NgView,\n TextNode,\n} from './views';\n\nimport { NativeScriptDebug } from './trace';\nimport { NgLayoutBase } from './views/view-types';\n\n// Note: this utility exists from deep core import however results in\n// Module not found: Error: Can't resolve '@nativescript/core/ui/core/properties'\nfunction isCssVariable(property: string) {\n return /^--[^,\\s]+?$/.test(property);\n}\n\nconst ELEMENT_NODE_TYPE = 1;\nconst XML_ATTRIBUTES = Object.freeze(['style', 'rows', 'columns', 'fontAttributes']);\nconst whiteSpaceSplitter = /\\s+/;\n\nexport type BeforeAttachAction = (view: View) => void;\n\nfunction printNgTree(view: NgView) {\n let parent = view;\n while (parent.parent && (parent.parent as NgView).firstChild) {\n parent = parent.parent as NgView;\n }\n printChildrenRecurse(parent);\n}\nfunction printChildrenRecurse(parent: NgView) {\n const children = parent.firstChild ? [parent.firstChild, ...getChildrenSiblings(parent.firstChild).nextSiblings] : [];\n console.log(\n `parent: ${parent}, firstChild: ${parent.firstChild}, lastChild: ${parent.lastChild} children: ${children}`,\n );\n if (parent.firstChild) {\n console.log(`----- start ${parent}`);\n }\n children.forEach((c) => printChildrenRecurse(c));\n if (parent.firstChild) {\n console.log(`----- end ${parent}`);\n }\n}\n\nfunction getChildrenSiblings(view: NgView) {\n const nextSiblings = [];\n const previousSiblings = [];\n let sibling = view.nextSibling;\n while (sibling) {\n nextSiblings.push(sibling);\n sibling = sibling.nextSibling;\n }\n sibling = view.previousSibling;\n while (sibling) {\n previousSiblings.push(sibling);\n sibling = sibling.previousSibling;\n }\n return {\n previousSiblings,\n nextSiblings,\n };\n}\n\nfunction printSiblingsTree(view: NgView) {\n const { previousSiblings, nextSiblings } = getChildrenSiblings(view);\n console.log(`${view} previousSiblings: ${previousSiblings} nextSiblings: ${nextSiblings}`);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nconst propertyMaps: Map<Function, Map<string, string>> = new Map<Function, Map<string, string>>();\n\nexport class ViewUtil {\n constructor(\n private namespaceFilters?: NamespaceFilter[],\n private reuseViews?: boolean,\n ) {}\n /**\n * Inserts a child into a parrent, preferably before next.\n * @param parent parent view\n * @param child child view to be added\n * @param previous previous element. If present, insert after this.\n * @param next next element. If present, insert before this (previous is ignored).\n */\n private insertChild(parent: View, child: View, previous?: NgView, next?: NgView) {\n if (!parent) {\n return;\n }\n\n const extendedParent = this.ensureNgViewExtensions(parent);\n const extendedChild = this.ensureNgViewExtensions(child);\n\n // this should never enter, as angular is supposed to remove the child from the previous parent before calling this\n // but when angular animations are enabled, the removal might be delayed, so we need to ensure this view is not anywhere\n // this seems to only happens to CommentNodes\n if (extendedChild.parentNode) {\n this.removeChild(extendedChild.parentNode, extendedChild);\n }\n // if there's a next child, previous is the previousSibling of it\n if (next) {\n previous = next.previousSibling;\n } else if (previous) {\n // if there's a previous, next is the nextSibling of it\n next = previous.nextSibling;\n } else {\n // no previous or next, append to the parent\n previous = extendedParent.lastChild; // this can still be undefined if the parent has no children!\n }\n this.insertInList(extendedParent, extendedChild, previous, next);\n\n if (isDetachedElement(child) || isInvisibleNode(child)) {\n extendedChild.parentNode = extendedParent;\n }\n\n if (!isDetachedElement(child)) {\n const nextVisual = this.findNextVisual(next);\n this.addToVisualTree(extendedParent, extendedChild, nextVisual);\n } else if (isInvisibleNode(extendedChild)) {\n const nextVisual = this.findNextVisual(next);\n this.addInvisibleNode(extendedParent, extendedChild, nextVisual);\n }\n // printNgTree(extendedChild);\n }\n\n public insertBefore(parent: View, child: View, refChild?: View | NgView) {\n const extendedRef = refChild ? this.ensureNgViewExtensions(refChild) : undefined;\n this.insertChild(parent, child, undefined, extendedRef);\n }\n public insertAfter(parent: View, child: View, refChild?: View | NgView) {\n const extendedRef = refChild ? this.ensureNgViewExtensions(refChild) : undefined;\n this.insertChild(parent, child, extendedRef);\n }\n\n public appendChild(parent: View, child: View) {\n this.insertChild(parent, child);\n }\n\n /**\n * Inserts a view into the parent/sibling linked list\n * !WARNING: this method makes no checks to validate the integrity of previous/next children\n * @param parent parent view\n * @param child child view\n * @param previous previous element. null/undefined for first element\n * @param next next element. null/undefined for last element\n */\n private insertInList(parent: NgView, child: NgView, previous: NgView, next: NgView): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(\n `ViewUtil.insertInList parent: ${parent}, view: ${child}, ` + `previous: ${previous}, next: ${next}`,\n );\n }\n\n if (previous) {\n previous.nextSibling = child;\n child.previousSibling = previous;\n } else {\n parent.firstChild = child;\n }\n\n if (next) {\n child.nextSibling = next;\n next.previousSibling = child;\n } else {\n parent.lastChild = child;\n }\n }\n\n private addToVisualTree(parent: NgView, child: NgView, next: NgView): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.addToVisualTree parent: ${parent}, view: ${child}, next: ${next}`);\n }\n\n if (parent.meta && parent.meta.insertChild) {\n parent.meta.insertChild(parent, child, next);\n } else if (isLayout(parent)) {\n this.insertToLayout(parent, child, next);\n } else if (isContentView(parent)) {\n parent.content = child;\n } else if (parent && (<any>parent)._addChildFromBuilder) {\n (<any>parent)._addChildFromBuilder(child.nodeName, child);\n }\n }\n\n private addInvisibleNode(parent: NgView, child: NgView, next: NgView): void {\n if (parent.meta?.insertInvisibleNode) {\n parent.meta.insertInvisibleNode(parent, child, next);\n } else {\n if (child instanceof TextNode) {\n (parent as any).text = child.text;\n child.registerTextChange((t) => ((parent as any).text = t), parent);\n }\n }\n }\n\n private insertToLayout(parent: NgLayoutBase, child: NgView, next: NgView): void {\n if (child.parent === parent) {\n this.removeLayoutChild(parent, child);\n }\n\n const nextVisual = this.findNextVisual(next);\n if (nextVisual) {\n const index = parent.getChildIndex(nextVisual);\n parent.insertChild(child, index);\n } else {\n parent.addChild(child);\n }\n // parent.eachChild((c) => {console.log(c); return true});\n }\n\n private findNextVisual(view: NgView): NgView {\n let next = view;\n while (next && isDetachedElement(next)) {\n next = next.nextSibling;\n }\n\n return next;\n }\n\n public removeChild(parent: View, child: View) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeChild parent: ${parent} child: ${child}`);\n }\n\n if (!parent) {\n return;\n }\n\n const extendedParent = this.ensureNgViewExtensions(parent);\n const extendedChild = this.ensureNgViewExtensions(child);\n extendedChild.parentNode = null;\n\n this.removeFromList(extendedParent, extendedChild);\n if (!isDetachedElement(extendedChild)) {\n this.removeFromVisualTree(extendedParent, extendedChild);\n } else if (isInvisibleNode(extendedChild)) {\n this.removeInvisibleNode(extendedParent, extendedChild);\n }\n }\n\n private removeFromList(parent: NgView, child: NgView) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeFromList parent: ${parent} child: ${child}`);\n }\n\n // only child. null everything\n if (parent.firstChild === child && parent.lastChild === child) {\n parent.firstChild = null;\n parent.lastChild = null;\n child.nextSibling = null;\n child.previousSibling = null;\n return;\n }\n\n const previous = child.previousSibling;\n const next = child.nextSibling;\n // is first child, make the next sibling the first child (can be null)\n if (parent.firstChild === child) {\n parent.firstChild = next;\n }\n\n // is last child, make the previous sibling the last child (can be null)\n if (parent.lastChild === child) {\n parent.lastChild = previous;\n }\n\n // we have a previous sibling, make it point to the next sibling\n if (previous) {\n previous.nextSibling = next;\n }\n\n // we have a next sibling, make it point to the previous\n if (next) {\n next.previousSibling = previous;\n }\n\n // finally, null the siblings\n child.nextSibling = null;\n child.previousSibling = null;\n }\n\n // NOTE: This one is O(n) - use carefully\n private findPreviousElement(parent: NgView, child: NgView): NgView {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.findPreviousElement parent: ${parent} child: ${child}`);\n }\n\n let previousVisual;\n if (isLayout(parent)) {\n previousVisual = this.getPreviousVisualElement(parent, child);\n }\n\n let previous = previousVisual || parent.firstChild;\n\n // since detached elements are not added to the visual tree,\n // we need to find the actual previous sibling of the view,\n // which may as well be an invisible node\n while (previous && previous !== child && previous.nextSibling !== child) {\n previous = previous.nextSibling;\n }\n\n return previous;\n }\n\n private getPreviousVisualElement(parent: NgLayoutBase, child: NgView): NgView {\n const elementIndex = parent.getChildIndex(child);\n\n if (elementIndex > 0) {\n return parent.getChildAt(elementIndex - 1) as NgView;\n }\n }\n\n // NOTE: This one is O(n) - use carefully\n public getChildIndex(parent: any, child: NgView) {\n if (isLayout(parent)) {\n return parent.getChildIndex(child);\n } else if (isContentView(parent)) {\n return child === parent.content ? 0 : -1;\n }\n }\n\n private removeFromVisualTree(parent: NgView, child: NgView) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeFromVisualTree parent: ${parent} child: ${child}`);\n }\n\n if (parent.meta && parent.meta.removeChild) {\n parent.meta.removeChild(parent, child);\n } else if (isLayout(parent)) {\n this.removeLayoutChild(parent, child);\n } else if (isContentView(parent) && parent.content === child) {\n parent.content = null;\n } else if (isView(parent)) {\n parent._removeView(child);\n }\n }\n\n private removeInvisibleNode(parent: NgView, child: NgView) {\n if (parent.meta?.removeInvisibleNode) {\n parent.meta.removeInvisibleNode(parent, child);\n } else {\n if (child instanceof TextNode) {\n child.unregisterTextChange(parent);\n }\n }\n }\n\n private removeLayoutChild(parent: NgLayoutBase, child: NgView): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeLayoutChild parent: ${parent} child: ${child}`);\n }\n\n const index = parent.getChildIndex(child);\n\n if (index !== -1) {\n parent.removeChild(child);\n }\n }\n\n public createComment(value: string): CommentNode {\n return new CommentNode(value);\n }\n\n public createText(value: string): TextNode {\n return new TextNode(value);\n }\n\n public createView(name: string): NgView {\n const originalName = name;\n if (!isKnownView(name)) {\n name = 'ProxyViewContainer';\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Creating view: ${originalName} ${name}`);\n }\n\n const viewClass = getViewClass(name);\n const view = <NgView>new viewClass();\n const ngView = this.setNgViewExtensions(view, name);\n ngView.reusable = !!this.reuseViews;\n\n return ngView;\n }\n\n private ensureNgViewExtensions(view: View): NgView {\n if (Object.hasOwnProperty.call(view, 'meta')) {\n return view as NgView;\n } else {\n const name = view.cssType || view.typeName;\n const ngView = this.setNgViewExtensions(view, name);\n\n return ngView;\n }\n }\n\n private setNgViewExtensions(view: View, name: string): NgView {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Make into a NgView view: ${view} name: \"${name}\"`);\n }\n\n const ngView = view as NgView;\n ngView.nodeName = name;\n ngView.meta = getViewMeta(name);\n\n // we're setting the node type of the view\n // to 'element' because of checks done in the\n // dom animation engine\n ngView.nodeType = ELEMENT_NODE_TYPE;\n\n return ngView;\n }\n\n public setProperty(view: NgView, attributeName: string, value: any, namespace?: string): void {\n if (!view || (namespace && !this.runsIn(namespace))) {\n return;\n }\n\n if (attributeName.indexOf('.') !== -1) {\n // Handle nested properties\n const properties = attributeName.split('.');\n attributeName = properties[properties.length - 1];\n\n let propMap = this.getProperties(view);\n let i = 0;\n while (i < properties.length - 1 && typeof view !== 'undefined') {\n let prop = properties[i];\n if (propMap.has(prop)) {\n prop = propMap.get(prop);\n }\n\n view = view[prop];\n propMap = this.getProperties(view);\n i++;\n }\n }\n\n if (typeof view !== 'undefined') {\n this.setPropertyInternal(view, attributeName, value);\n }\n }\n\n private runsIn(platform: string): boolean {\n let runs = true;\n const last = () => true;\n if (this.namespaceFilters) {\n let chain = (p: string) => true;\n for (let i = this.namespaceFilters.length - 1; i >= 0; i--) {\n const currentChain = chain;\n chain = (p) => this.namespaceFilters[i].runsIn(p, currentChain);\n }\n runs = chain(platform);\n runs = runs !== false ? true : false; // undefined means true\n // this.namespaceFilters.some((filter) => {\n // \tconst runsInFilter = filter.runsIn(platform);\n // \tif (runsInFilter !== undefined) {\n // \t\truns = runsInFilter;\n // \t\treturn true;\n // \t}\n // });\n }\n return runs;\n }\n\n private setPropertyInternal(view: NgView, attributeName: string, value: any): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Setting attribute: ${attributeName}=${value} to ${view}`);\n }\n\n if (attributeName === 'class') {\n this.setClasses(view, value);\n return;\n }\n\n if (XML_ATTRIBUTES.indexOf(attributeName) !== -1) {\n view[attributeName] = value;\n return;\n }\n\n const propMap = this.getProperties(view);\n const propertyName = propMap.get(attributeName);\n\n // Ensure the children of a collection currently have no parent set.\n if (Array.isArray(value)) {\n this.removeParentReferencesFromItems(value);\n }\n\n if (propertyName) {\n // We have a lower-upper case mapped property.\n view[propertyName] = value;\n return;\n }\n\n // Unknown attribute value -- just set it to our object as is.\n view[attributeName] = value;\n }\n\n private removeParentReferencesFromItems(items: any[]): void {\n for (const item of items) {\n if (item.parent && item.parentNode) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Unassigning parent ${item.parentNode} on value: ${item}`);\n }\n item.parent = undefined;\n item.parentNode = undefined;\n }\n }\n }\n\n private getProperties(instance: any): Map<string, string> {\n const type = instance && instance.constructor;\n if (!type) {\n return new Map<string, string>();\n }\n\n if (!propertyMaps.has(type)) {\n const propMap = new Map<string, string>();\n for (const propName in instance) {\n // tslint:disable:forin\n propMap.set(propName.toLowerCase(), propName);\n }\n propertyMaps.set(type, propMap);\n }\n\n return propertyMaps.get(type);\n }\n\n private cssClasses(view: NgView) {\n if (!view.ngCssClasses) {\n view.ngCssClasses = new Map<string, boolean>();\n }\n return view.ngCssClasses;\n }\n\n public addClass(view: View | NgView, className: string): void {\n const extendedView = this.ensureNgViewExtensions(view);\n this.cssClasses(extendedView).set(className, true);\n this.syncClasses(extendedView);\n }\n\n public removeClass(view: View, className: string): void {\n const extendedView = this.ensureNgViewExtensions(view);\n this.cssClasses(extendedView).delete(className);\n this.syncClasses(extendedView);\n }\n\n private setClasses(view: NgView, classesValue: string): void {\n const classes = classesValue.split(whiteSpaceSplitter);\n this.cssClasses(view).clear();\n classes.forEach((className) => this.cssClasses(view).set(className, true));\n this.syncClasses(view);\n }\n\n private syncClasses(view: NgView): void {\n const classValue = (<any>Array).from(this.cssClasses(view).keys()).join(' ');\n view.className = classValue;\n }\n\n public setStyle(view: View, styleName: string, value: any) {\n if (isCssVariable(styleName)) {\n view.style.setUnscopedCssVariable(styleName, value);\n view._onCssStateChange();\n } else {\n view.style[styleName] = value;\n }\n }\n\n public removeStyle(view: View, styleName: string) {\n if (isCssVariable(styleName)) {\n // TODO: expose this on core\n (view.style as any).unscopedCssVariables.delete(styleName);\n view._onCssStateChange();\n } else {\n view.style[styleName] = unsetValue;\n }\n }\n}\n","import { Inject, Injectable, Injector, NgZone, Optional, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation, inject, runInInjectionContext } from '@angular/core';\nimport { addTaggedAdditionalCSS, Application, ContentView, Device, getViewById, Observable, profile, Utils, View } from '@nativescript/core';\nimport { getViewClass, isKnownView } from './element-registry';\nimport { getFirstNativeLikeView, NgView, TextNode } from './views';\n\nimport { NamespaceFilter, NAMESPACE_FILTERS } from './property-filter';\nimport { APP_ROOT_VIEW, ENABLE_REUSABE_VIEWS, NATIVESCRIPT_ROOT_MODULE_ID, PREVENT_SPECIFIC_EVENTS_DURING_CD } from './tokens';\nimport { NativeScriptDebug } from './trace';\nimport { ViewUtil } from './view-util';\n\nconst addStyleToCss = profile('\"renderer\".addStyleToCss', function addStyleToCss(style: string, tag?: string | number): void {\n if (tag) {\n addTaggedAdditionalCSS(style, tag);\n } else {\n Application.addCss(style);\n }\n});\n\nfunction runInRootZone<T>(fn: () => T): T {\n if (typeof Zone === 'undefined') {\n return fn();\n }\n return Zone.root.run(fn);\n}\n\nfunction inRootZone() {\n return function (target: unknown, key: string | symbol, descriptor: PropertyDescriptor) {\n const childFunction = descriptor.value;\n descriptor.value = function (...args: unknown[]) {\n const fn = childFunction.bind(this);\n return runInRootZone(() => fn(...args));\n };\n return descriptor;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeScriptRendererHelperService {\n private _executingDomChanges = 0;\n get executingDomChanges() {\n return this._executingDomChanges;\n }\n get isExecutingDomChanges() {\n return this._executingDomChanges > 0;\n }\n beginDomChanges() {\n this._executingDomChanges++;\n }\n endDomChanges() {\n this._executingDomChanges--;\n }\n executeDomChange<T>(fn: () => T): T {\n try {\n this.beginDomChanges();\n return fn();\n } finally {\n this.endDomChanges();\n }\n }\n}\n\nfunction modifiesDom() {\n return function (\n target: {\n _rendererHelper: NativeScriptRendererHelperService;\n },\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n const childFunction = descriptor.value;\n descriptor.value = function (...args: unknown[]) {\n const fn = childFunction.bind(this);\n return this._rendererHelper.executeDomChange(() => fn(...args));\n };\n return descriptor;\n };\n}\n\nexport class NativeScriptRendererFactory implements RendererFactory2 {\n private componentRenderers = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n // backwards compatibility with RadListView\n private rootView = inject(APP_ROOT_VIEW);\n private namespaceFilters = inject(NAMESPACE_FILTERS);\n private rootModuleID = inject(NATIVESCRIPT_ROOT_MODULE_ID);\n private reuseViews = inject(ENABLE_REUSABE_VIEWS, {\n optional: true,\n });\n private injector = inject(Injector);\n private viewUtil = new ViewUtil(this.namespaceFilters, this.reuseViews);\n\n constructor() {\n if (typeof this.reuseViews !== 'boolean') {\n this.reuseViews = false; // default to false\n }\n this.defaultRenderer = new NativeScriptRenderer(this.rootView);\n }\n createRenderer(hostElement: any, type: RendererType2): Renderer2 {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRendererFactory.createRenderer ${hostElement}. type.id: ${type.id} type.encapsulation: ${type.encapsulation}`);\n }\n if (!hostElement || !type) {\n return this.defaultRenderer;\n }\n\n let renderer = this.componentRenderers.get(type.id);\n /**\n *! WARNING\n *! We're reusing the renderer for the components\n *! this might cause unexpected behavior as the \"rootView\" is an arbitrary hostElement\n *! also, the renderer has it's .destroy() called!\n *! might be useful to create a BaseEmulatedRender and a ProxyEmulatedRender\n *! every component type gets a BaseEmulatedRender (singleton) which is passed to ProxyEmulatedRender\n *! ProxyEmulatedRenderer registers with BaseEmulatedRender so we can clean up things like CSS when it's not needed\n *! this might be useful if we find a way to HMR component styling without a full rebootstrap\n */\n if (renderer) {\n if (renderer instanceof EmulatedRenderer) {\n renderer.applyToHost(hostElement);\n }\n\n return renderer;\n }\n\n if (type.encapsulation === ViewEncapsulation.None) {\n type.styles.map((s) => s.toString()).forEach((v) => addStyleToCss(v, this.rootModuleID));\n renderer = this.defaultRenderer;\n } else {\n runInInjectionContext(this.injector, () => {\n renderer = new EmulatedRenderer(type, hostElement);\n });\n (<EmulatedRenderer>renderer).applyToHost(hostElement);\n }\n\n this.componentRenderers.set(type.id, renderer);\n return renderer;\n }\n // begin?(): void {\n // throw new Error(\"Method not implemented.\");\n // }\n // end?(): void {\n // throw new Error(\"Method not implemented.\");\n // }\n whenRenderingDone(): Promise<any> {\n if (!this.rootView) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve) => {\n let interval: any = 0;\n function scheduleResolve() {\n // iOS really hates synchronous things...\n // Utils.queueMacrotask(resolve);\n setTimeout(resolve, 15);\n }\n function fireWhenLoaded() {\n const view = rootFactory();\n if (view.isLoaded) {\n scheduleResolve();\n } else {\n view.once('loaded', scheduleResolve);\n }\n }\n const rootFactory = () => (this.rootView instanceof ContentView ? this.rootView.content : this.rootView);\n if (!rootFactory()) {\n interval = setInterval(() => {\n if (rootFactory()) {\n clearInterval(interval);\n fireWhenLoaded();\n }\n }, 10);\n } else {\n fireWhenLoaded();\n }\n });\n // throw new Error(\"Method not implemented.\");\n }\n}\n\nclass NativeScriptRenderer implements Renderer2 {\n private namespaceFilters = inject(NAMESPACE_FILTERS);\n private reuseViews = inject(ENABLE_REUSABE_VIEWS, {\n optional: true,\n });\n private viewUtil = new ViewUtil(this.namespaceFilters, this.reuseViews);\n _rendererHelper = inject(NativeScriptRendererHelperService);\n private specificPreventedEvents = new Set(\n inject(PREVENT_SPECIFIC_EVENTS_DURING_CD, {\n optional: true,\n }) ?? [],\n );\n private preventChangeEvents =\n inject(PREVENT_SPECIFIC_EVENTS_DURING_CD, {\n optional: true,\n }) ?? false;\n\n constructor(private rootView: View) {}\n get data(): { [key: string]: any } {\n throw new Error('Method not implemented.');\n }\n destroy(): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog('NativeScriptRenderer.destroy');\n }\n }\n @inRootZone()\n @modifiesDom()\n createElement(name: string, namespace?: string) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.createElement: ${name}`);\n }\n let oldName;\n if (!isKnownView(name)) {\n oldName = name;\n name = 'ProxyViewContainer';\n }\n const view = this.viewUtil.createView(name);\n if (oldName) {\n (view as any).customCSSName = oldName;\n }\n return view;\n }\n @inRootZone()\n @modifiesDom()\n createComment(value: string) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.createComment ${value}`);\n }\n return this.viewUtil.createComment(value);\n }\n @inRootZone()\n @modifiesDom()\n createText(value: string) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.createText ${value}`);\n }\n return this.viewUtil.createText(value);\n }\n destroyNode: (node: any) => void = (node: View) =>\n runInRootZone(() => {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.destroyNode node: ${node}`);\n }\n if (node?.destroyNode) {\n node?.destroyNode();\n }\n });\n @inRootZone()\n @modifiesDom()\n appendChild(parent: View, newChild: View): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.appendChild child: ${newChild} parent: ${parent}`);\n }\n this.viewUtil.appendChild(parent, newChild);\n }\n @inRootZone()\n @modifiesDom()\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.insertBefore child: ${newChild} ` + `parent: ${parent} refChild: ${refChild}`);\n }\n this.viewUtil.insertBefore(parent, newChild, refChild);\n }\n @inRootZone()\n @modifiesDom()\n removeChild(parent: any, oldChild: any, isHostElement?: boolean): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.removeChild child: ${oldChild} parent: ${parent} oldChild.parentNode: ${oldChild?.parentNode}`);\n }\n this.viewUtil.removeChild(parent ?? oldChild.parentNode, oldChild);\n }\n selectRootElement(selectorOrNode: any, preserveContent?: boolean) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.selectRootElement: ${selectorOrNode}`);\n }\n if (selectorOrNode instanceof View) {\n return selectorOrNode;\n }\n if (selectorOrNode && selectorOrNode[0] === '#') {\n const result = getViewById(this.rootView, selectorOrNode.slice(1));\n return (result || this.rootView) as View;\n }\n if (typeof selectorOrNode === 'string') {\n const view = this.viewUtil.createView(selectorOrNode);\n if (getFirstNativeLikeView(view) === view) {\n // view is nativelike!\n this.appendChild(this.rootView, view);\n return view;\n }\n }\n return this.rootView;\n }\n parentNode(node: NgView) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.parentNode for node: ${node} is ${node.parentNode}`);\n }\n return node.parentNode;\n }\n nextSibling(node: NgView) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.nextSibling of ${node} is ${node.nextSibling}`);\n }\n return node.nextSibling;\n }\n @inRootZone()\n @modifiesDom()\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setAttribute ${namespace ? namespace + ':' : ''}${el}.${name} = ${value}`);\n }\n this.viewUtil.setProperty(el, name, value, namespace);\n }\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.removeAttribute ${namespace ? namespace + ':' : ''}${el}.${name}`);\n }\n }\n @inRootZone()\n @modifiesDom()\n addClass(el: any, name: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.addClass ${name}`);\n }\n this.viewUtil.addClass(el, name);\n }\n @inRootZone()\n @modifiesDom()\n removeClass(el: any, name: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.removeClass ${name}`);\n }\n this.viewUtil.removeClass(el, name);\n }\n @inRootZone()\n @modifiesDom()\n setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setStyle: ${el}, ${style} = ${value}`);\n }\n this.viewUtil.setStyle(el, style, value);\n }\n @inRootZone()\n @modifiesDom()\n removeStyle(el: any, style: string, flags?: RendererStyleFlags2): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog('NativeScriptRenderer.removeStyle: ${styleName}');\n }\n this.viewUtil.removeStyle(el, style);\n }\n @inRootZone()\n @modifiesDom()\n setProperty(el: any, name: string, value: any): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setProperty ${el}.${name} = ${value}`);\n }\n this.viewUtil.setProperty(el, name, value);\n }\n @inRootZone()\n @modifiesDom()\n setValue(node: any, value: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setValue renderNode: ${node}, value: ${value}`);\n }\n if (node instanceof TextNode) {\n node.text = value;\n }\n // throw new Error(\"Method not implemented.\");\n }\n listen(target: View, eventName: string, callback: (event: any) => boolean | void): () => void {\n // throw new Error(\"Method not implemented.\");\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.listen: ${eventName}`);\n }\n let modifiedCallback = callback;\n if ((this.preventChangeEvents && eventName.endsWith('Change')) || this.specificPreventedEvents.has(eventName)) {\n modifiedCallback = (...args) => {\n if (this._rendererHelper.isExecutingDomChanges) {\n return;\n }\n return callback(...args);\n };\n }\n target.on(eventName, modifiedCallback);\n if (eventName === View.loadedEvent && target.isLoaded) {\n // we must create a new obervable here to ensure that the event goes through whatever zone patches are applied\n const obs = new Observable();\n obs.once(eventName, modifiedCallback);\n obs.notify({\n eventName,\n object: target,\n });\n }\n return () => target.off(eventName, modifiedCallback);\n }\n}\n\n// CONTENT_ATTR not exported from nativescript-renderer - we need it for styles application.\nconst COMPONENT_REGEX = /%COMP%/g;\nconst ATTR_SANITIZER = /-/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nconst replaceNgAttribute = function (input: string, componentId: string): string {\n return input.replace(COMPONENT_REGEX, componentId);\n};\n\nconst addScopedStyleToCss = profile(`\"renderer\".addScopedStyleToCss`, function addScopedStyleToCss(style: string, tag?: number | string): void {\n if (tag) {\n addTaggedAdditionalCSS(style, tag);\n } else {\n Application.addCss(style);\n }\n});\n\n@Injectable()\nexport class EmulatedRenderer extends NativeScriptRenderer {\n private contentAttr: string;\n private hostAttr: string;\n private rootModuleId = inject(NATIVESCRIPT_ROOT_MODULE_ID);\n\n constructor(component: RendererType2, rootView: View) {\n super(rootView);\n\n const componentId = component.id.replace(ATTR_SANITIZER, '_');\n this.contentAttr = replaceNgAttribute(CONTENT_ATTR, componentId);\n this.hostAttr = replaceNgAttribute(HOST_ATTR, componentId);\n this.addStyles(component.styles, componentId);\n }\n\n applyToHost(view: NgView) {\n super.setAttribute(view, this.hostAttr, '');\n }\n\n appendChild(parent: any, newChild: NgView): void {\n super.appendChild(parent, newChild);\n }\n\n createElement(parent: any, name: string): NgView {\n const view = super.createElement(parent, name);\n\n // Set an attribute to the view to scope component-specific css.\n // The property name is pre-generated by Angular.\n super.setAttribute(view, this.contentAttr, '');\n\n return view;\n }\n\n @profile\n @inRootZone()\n @modifiesDom()\n private addStyles(styles: (string | any[])[], componentId: string) {\n styles\n .map((s) => s.toString())\n .map((s) => replaceNgAttribute(s, componentId))\n .forEach((s) => addScopedStyleToCss(s, this.rootModuleId));\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' + 'a ComponentPortal or a TemplatePortal.');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { TemplateRef, ViewContainerRef, ElementRef, ComponentRef, EmbeddedViewRef, Injector, ComponentFactoryResolver } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { throwNullPortalOutletError, throwPortalAlreadyAttachedError, throwNoPortalAttachedError, throwNullPortalError, throwPortalOutletAlreadyDisposedError, throwUnknownPortalTypeError } from './portal-errors';\nimport type { ComponentType } from '../../utils/general';\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n\n this._attachedHost = host;\n return <T>host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n const host = this._attachedHost;\n\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** [Optional] Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * Alternate `ComponentFactoryResolver` to use when resolving the associated component.\n * Defaults to using the resolver from the outlet that the portal is attached to.\n */\n componentFactoryResolver?: ComponentFactoryResolver | null;\n\n constructor(component: ComponentType<T>, viewContainerRef?: ViewContainerRef | null, injector?: Injector | null, componentFactoryResolver?: ComponentFactoryResolver | null) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef: TemplateRef<C>;\n\n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef: ViewContainerRef;\n\n /** Contextual data to be passed in to the embedded view. */\n context: C | undefined;\n\n constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nexport class DomPortal<T = View> extends Portal<T> {\n /** DOM node hosting the portal's content. */\n readonly element: T;\n\n constructor(element: T | ElementRef<T>) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n } else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n // eslint-disable-next-line @typescript-eslint/member-ordering\n readonly attachDomPortal: null | ((portal: DomPortal) => any) = null;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ComponentRef, Directive, EmbeddedViewRef, EventEmitter, NgModule, OnDestroy, OnInit, Output, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { CommentNode } from '../../views/invisible-nodes';\nimport { BasePortalOutlet, ComponentPortal, DomPortal, Portal, TemplatePortal } from './common';\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\n@Directive({\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n standalone: true,\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['portal: cdkPortalOutlet'],\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private renderer: Renderer2,\n ) {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> = new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n\n // const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n // const componentFactory = resolver.resolveComponentFactory<T>(portal.component);\n const ref = viewContainerRef.createComponent(portal.component);\n // const ref = viewContainerRef.createComponent<T>(portal.component, viewContainerRef.length, portal.injector || viewContainerRef.injector);\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this.renderer.appendChild(this._getRootNode(), (ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode: CommentNode = this.renderer.createComment('dom-portal');\n\n portal.setAttachedHost(this);\n this.renderer.insertBefore(element.parentNode, anchorNode, element);\n this.renderer.appendChild(this._getRootNode(), element);\n\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n this.renderer.insertBefore(anchorNode.parentNode, element, anchorNode);\n this.renderer.removeChild(anchorNode.parentNode, anchorNode);\n // anchorNode.parentNode!.replaceChild(element, anchorNode);\n }\n });\n };\n\n /** Gets the root node of the portal outlet. */\n private _getRootNode(): View {\n const nativeElement: View = this._viewContainerRef.element.nativeElement;\n\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return (!(nativeElement instanceof CommentNode) ? nativeElement : nativeElement.parentNode!) as View;\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static ngAcceptInputType_portal: Portal<any> | null | undefined | '';\n}\n\n@NgModule({\n imports: [CdkPortal, CdkPortalOutlet],\n exports: [CdkPortal, CdkPortalOutlet],\n})\nexport class PortalModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, ApplicationRef, Injector, Renderer2, Optional } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { CommentNode } from '../../views/invisible-nodes';\nimport { ViewUtil } from '../../view-util';\nimport { BasePortalOutlet, ComponentPortal, TemplatePortal, DomPortal } from './common';\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class NativeScriptDomPortalOutlet extends BasePortalOutlet {\n private _viewUtil: ViewUtil;\n constructor(\n /** Element into which the content is projected. */\n public outletElement: View,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n private _defaultInjector: Injector,\n @Optional() viewUtil?: ViewUtil,\n ) {\n super();\n this._viewUtil = viewUtil || this._defaultInjector.get(ViewUtil);\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n const rootNode = this._getComponentRootNode(componentRef);\n if (rootNode.parent) {\n this._viewUtil.removeChild(rootNode.parent as View, rootNode);\n }\n this._viewUtil.appendChild(this.outletElement, this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n const viewContainer = portal.viewContainerRef;\n const viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach((rootNode) => {\n if (rootNode.parent) {\n this._viewUtil.removeChild(rootNode.parent as View, rootNode);\n }\n this._viewUtil.appendChild(this.outletElement, rootNode);\n });\n\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n\n this.setDisposeFn(() => {\n const index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode: CommentNode = this._viewUtil.createComment('dom-portal');\n\n this._viewUtil.insertBefore(element.parentNode as View, anchorNode, element);\n this._viewUtil.appendChild(this.outletElement, element);\n\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n this._viewUtil.insertBefore(anchorNode.parentNode, element, anchorNode);\n this._viewUtil.removeChild(anchorNode.parentNode, anchorNode);\n //anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n\n /**\n * Clears out a portal from the DOM.\n */\n dispose(): void {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this._viewUtil.removeChild(this.outletElement.parentNode as View, this.outletElement);\n }\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): View {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as View;\n }\n}\n","import { ApplicationRef, ChangeDetectorRef, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, inject, Injector, NO_ERRORS_SCHEMA, OnDestroy, TemplateRef, Type, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ProxyViewContainer, Trace } from '@nativescript/core';\nimport { registerElement } from '../element-registry';\nimport type { ComponentType } from '../utils/general';\nimport { ComponentPortal, TemplatePortal } from './portal';\n\nregisterElement('DetachedContainer', () => ProxyViewContainer, {\n skipAddToDom: true,\n});\n\n/**\n * Wrapper component used for loading components when navigating\n * It uses DetachedContainer as selector so that it is containerRef is not attached to\n * the visual tree.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'DetachedContainer',\n template: `<Placeholder #loader></Placeholder>\n <ng-container #vc></ng-container>\n <ng-content></ng-content>`,\n standalone: true,\n schemas: [NO_ERRORS_SCHEMA],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class DetachedLoader implements OnDestroy {\n @ViewChild('vc', { read: ViewContainerRef, static: true }) vc: ViewContainerRef;\n private disposeFunctions: Array<() => void> = [];\n // tslint:disable-line:component-class-suffix\n resolver = inject(ComponentFactoryResolver);\n changeDetector = inject(ChangeDetectorRef);\n containerRef = inject(ViewContainerRef);\n appRef = inject(ApplicationRef);\n\n public createComponentPortal<T>(componentType: ComponentType<T>, customInjector?: Injector) {\n return new ComponentPortal(componentType, this.vc, customInjector || this.vc.injector);\n }\n\n public createTemplatePortal<T>(templateRef: TemplateRef<T>, context?: T) {\n return new TemplatePortal(templateRef, this.vc, context);\n }\n\n private loadInAppRef(componentType: Type<any>): ComponentRef<any> {\n const factory = this.resolver.resolveComponentFactory(componentType);\n const componentRef = factory.create(this.containerRef.injector);\n this.appRef.attachView(componentRef.hostView);\n\n this.disposeFunctions.push(() => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n\n // Component is created, built may not be checked if we are loading\n // inside component with OnPush CD strategy. Mark us for check to be sure CD will reach us.\n // We are inside a promise here so no need for setTimeout - CD should trigger\n // after the promise.\n Trace.write('DetachedLoader.loadInLocation component loaded -> markForCheck', 'detached-loader');\n\n return componentRef;\n }\n\n private loadInLocation(componentType: Type<any>): ComponentRef<any> {\n return this.vc.createComponent(componentType);\n }\n\n public ngOnDestroy() {\n this.disposeFunctions.forEach((fn) => fn());\n }\n\n public detectChanges() {\n this.changeDetector.markForCheck();\n }\n\n /**\n * @deprecated use Portals\n */\n public loadComponent(componentType: Type<any>): Promise<ComponentRef<any>> {\n Trace.write('DetachedLoader.loadComponent', 'detached-loader');\n return Promise.resolve(this.loadInAppRef(componentType));\n }\n\n /**\n * @deprecated use Portals\n */\n public loadComponentSync(componentType: Type<any>): ComponentRef<any> {\n Trace.write('DetachedLoader.loadComponentSync', 'detached-loader');\n return this.loadInAppRef(componentType);\n }\n\n /**\n * @deprecated use Portals\n */\n public loadComponentInLocation(componentType: Type<any>): ComponentRef<any> {\n Trace.write('DetachedLoader.loadComponentInLocation', 'detached-loader');\n return this.loadInLocation(componentType);\n }\n\n /**\n * @deprecated use Portals\n */\n public loadWithFactory<T>(factory: ComponentFactory<T>): ComponentRef<T> {\n const componentRef = factory.create(this.containerRef.injector);\n this.appRef.attachView(componentRef.hostView);\n\n this.disposeFunctions.push(() => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n return componentRef;\n }\n\n /**\n * @deprecated use Portals\n */\n public loadWithFactoryInLocation<T>(factory: ComponentFactory<T>): ComponentRef<T> {\n return this.vc.createComponent(factory);\n }\n}\n","import { ElementRef, Inject, Injectable, OnDestroy, Optional } from '@angular/core';\nimport { NavigatedData, Page, View, ViewBase } from '@nativescript/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Injectable()\nexport class PageService implements OnDestroy {\n page: Page;\n private _inPage$: BehaviorSubject<boolean>;\n private _pageEvents$ = new Subject<NavigatedData>();\n\n get inPage(): boolean {\n return this._inPage$.value;\n }\n get inPage$(): Observable<boolean> {\n return this._inPage$.pipe(distinctUntilChanged());\n }\n get pageEvents$(): Observable<NavigatedData> {\n return this._pageEvents$.asObservable();\n }\n constructor(@Optional() page?: Page, @Optional() elRef?: ElementRef<ViewBase>, @Optional() view?: ViewBase) {\n if (page) {\n this.page = page;\n } else {\n view = view || elRef.nativeElement;\n while (view) {\n if (view instanceof Page) {\n this.page = view;\n break;\n }\n view = view.parent;\n }\n }\n this._inPage$ = new BehaviorSubject<boolean>(!!this.page?.isLoaded);\n if (this.page) {\n this.page.on('navigatedFrom', this.pageEvent, this);\n this.page.on('navigatedTo', this.pageEvent, this);\n this.page.on('navigatingFrom', this.pageEvent, this);\n this.page.on('navigatingTo', this.pageEvent, this);\n }\n }\n\n ngOnDestroy() {\n if (this.page) {\n this.page.off('navigatedFrom', this.pageEvent, this);\n this.page.off('navigatedTo', this.pageEvent, this);\n this.page.off('navigatingFrom', this.pageEvent, this);\n this.page.off('navigatingTo', this.pageEvent, this);\n }\n this._inPage$.complete();\n this._pageEvents$.complete();\n }\n\n private pageEvent(evt: NavigatedData) {\n this._pageEvents$.next(evt);\n switch (evt.eventName) {\n case 'navigatedTo':\n this._inPage$.next(true);\n break;\n case 'navigatedFrom':\n this._inPage$.next(false);\n break;\n default:\n }\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, ViewChild } from '@angular/core';\nimport { Frame, Page, View } from '@nativescript/core';\nimport { frameMeta, registerElement } from '../../element-registry';\nimport { PageService } from './page.service';\n\nexport function customFrameComponentFactory(v: FramePageComponent) {\n return v.element.nativeElement;\n}\n\nexport function customPageFactoryFromFrame(v: FramePageComponent) {\n return v.page;\n}\n\nregisterElement('FramePage', () => Frame, {\n insertChild: (parent: Frame, child: View) => {\n if (child instanceof Page) {\n frameMeta.insertChild(parent, child);\n return;\n }\n parent['__ng_page__'].content = child;\n },\n});\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'FramePage',\n template: `<ng-content></ng-content>`,\n standalone: true,\n providers: [\n {\n provide: Frame,\n useFactory: customFrameComponentFactory,\n deps: [FramePageComponent],\n },\n {\n provide: Page,\n useFactory: customPageFactoryFromFrame,\n deps: [FramePageComponent],\n },\n PageService,\n ],\n})\nexport class FramePageComponent implements AfterViewInit, OnChanges {\n page: Page;\n\n @Input() actionBarHidden = false;\n\n constructor(public element: ElementRef<Frame>, renderer: Renderer2) {\n this.page = renderer.createElement('Page') as Page;\n element.nativeElement['__ng_page__'] = this.page;\n renderer.appendChild(element.nativeElement, this.page);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.actionBarHidden && changes.actionBarHidden.previousValue !== changes.actionBarHidden.currentValue) {\n if (this.page) {\n this.page.actionBarHidden = !!this.actionBarHidden;\n }\n }\n }\n ngAfterViewInit(): void {\n if (this.page) {\n this.page.actionBarHidden = !!this.actionBarHidden;\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Frame } from '@nativescript/core';\n\nexport function customFrameDirectiveFactory(v: FrameDirective) {\n return v.element.nativeElement;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'Frame',\n standalone: true,\n providers: [\n {\n provide: Frame,\n useFactory: customFrameDirectiveFactory,\n deps: [FrameDirective],\n },\n ],\n})\nexport class FrameDirective {\n constructor(public element: ElementRef<Frame>) {}\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Page } from '@nativescript/core';\nimport { PageService } from './page.service';\n\nexport function customPageFactory(v: PageDirective) {\n return v.element.nativeElement;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'Page',\n standalone: true,\n providers: [\n {\n provide: Page,\n useFactory: customPageFactory,\n deps: [PageDirective],\n },\n PageService,\n ],\n})\nexport class PageDirective {\n constructor(public element: ElementRef<Page>) {}\n}\n","import { NgModule } from '@angular/core';\nimport { FramePageComponent } from './frame-page.component';\nimport { FrameDirective } from './frame.directive';\nimport { PageDirective } from './page.directive';\n\n@NgModule({\n imports: [FrameDirective, PageDirective, FramePageComponent],\n exports: [FrameDirective, PageDirective, FramePageComponent],\n})\nexport class FramePageModule {}\n","export function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n","import { Directive, Component, ElementRef, OnDestroy, inject } from '@angular/core';\nimport { ActionBar, ActionItem, ActionItems, NavigationButton, Page } from '@nativescript/core';\n\nimport { isBlank } from '../../utils/lang-facade';\nimport { NgView, ViewClassMeta, ViewExtensions } from '../../views/view-types';\nimport { isInvisibleNode, isView } from '../../views/utils';\nimport { registerElement } from '../../element-registry';\n\nexport function isActionItem(view: any): view is ActionItem {\n return view instanceof ActionItem;\n}\n\nexport function isNavigationButton(view: any): view is NavigationButton {\n return view instanceof NavigationButton;\n}\n\ntype NgActionBar = ActionBar & ViewExtensions;\n\nexport const actionBarMeta: ViewClassMeta = {\n skipAddToDom: true,\n insertChild: (parent: NgActionBar, child: NgView, next: any) => {\n if (isInvisibleNode(child)) {\n return;\n } else if (isNavigationButton(child)) {\n parent.navigationButton = child;\n child.parentNode = parent;\n } else if (isActionItem(child)) {\n addActionItem(parent, child, next);\n child.parentNode = parent;\n } else if (isView(child)) {\n parent.titleView = child;\n }\n },\n removeChild: (parent: NgActionBar, child: NgView) => {\n if (isInvisibleNode(child)) {\n return;\n } else if (isNavigationButton(child)) {\n if (parent.navigationButton === child) {\n parent.navigationButton = null;\n }\n\n child.parentNode = null;\n } else if (isActionItem(child)) {\n parent.actionItems.removeItem(child);\n child.parentNode = null;\n } else if (isView(child) && parent.titleView && parent.titleView === child) {\n parent.titleView = null;\n }\n },\n};\n\nregisterElement('ActionBar', () => ActionBar, actionBarMeta);\nregisterElement('ActionItem', () => <any>ActionItem);\nregisterElement('NavigationButton', () => <any>NavigationButton);\n\nconst addActionItem = (bar: NgActionBar, item: ActionItem, next: ActionItem) => {\n if (next) {\n insertActionItemBefore(bar, item, next);\n } else {\n appendActionItem(bar, item);\n }\n};\n\nconst insertActionItemBefore = (bar: NgActionBar, item: ActionItem, next: ActionItem) => {\n const actionItems: ActionItems = bar.actionItems;\n const actionItemsCollection: ActionItem[] = actionItems.getItems();\n\n const indexToInsert = actionItemsCollection.indexOf(next);\n actionItemsCollection.splice(indexToInsert, 0, item);\n\n (<any>actionItems).setItems(actionItemsCollection);\n};\n\nconst appendActionItem = (bar: NgActionBar, item: ActionItem) => {\n bar.actionItems.addItem(item);\n};\n\n@Component({\n selector: 'ActionBar',\n template: '<ng-content></ng-content>',\n standalone: true,\n})\nexport class ActionBarComponent {\n element = inject(ElementRef);\n page = inject(Page, { optional: true });\n constructor() {\n if (!this.page) {\n throw new Error('No Page found in ActionBarComponent.\\n' + 'Only a Page can contain an ActionBar, so please ensure ActionBar is only used inside a Component that is routed via page-router-outlet or is contained in a Page.\\n' + 'Example for root action bars in AppComponent: <Frame><Page><ActionBar>....</ActionBar></Page></Frame>');\n }\n\n if (isBlank(this.page.actionBarHidden)) {\n this.page.actionBarHidden = false;\n }\n this.page.actionBar = this.element.nativeElement;\n this.page.actionBar.update();\n }\n}\n\n@Component({\n selector: 'ActionBarExtension',\n template: '',\n standalone: true,\n})\nexport class ActionBarScope {\n page = inject(Page, { optional: true });\n constructor() {\n if (!this.page) {\n throw new Error('Inside ActionBarExtension but no ActionBar found to extend.');\n }\n }\n\n public onNavButtonInit(navBtn: NavigationButtonDirective) {\n this.page.actionBar.navigationButton = navBtn.element.nativeElement;\n }\n\n public onNavButtonDestroy(navBtn: NavigationButtonDirective) {\n const nav = <NavigationButton>navBtn.element.nativeElement;\n if (nav && this.page.actionBar.navigationButton === nav) {\n this.page.actionBar.navigationButton = null;\n }\n }\n\n public onActionInit(item: ActionItemDirective) {\n this.page.actionBar.actionItems.addItem(item.element.nativeElement);\n }\n\n public onActionDestroy(item: ActionItemDirective) {\n if (item.element.nativeElement.actionBar) {\n this.page.actionBar.actionItems.removeItem(item.element.nativeElement);\n }\n }\n}\n\n@Directive({\n selector: 'ActionItem',\n standalone: true,\n})\nexport class ActionItemDirective implements OnDestroy {\n element = inject(ElementRef);\n ownerScope = inject(ActionBarScope, { optional: true });\n constructor() {\n if (this.ownerScope) {\n this.ownerScope.onActionInit(this);\n }\n }\n\n ngOnDestroy() {\n if (this.ownerScope) {\n this.ownerScope.onActionDestroy(this);\n }\n }\n}\n\n@Directive({\n selector: 'NavigationButton',\n standalone: true,\n})\nexport class NavigationButtonDirective implements OnDestroy {\n element = inject(ElementRef);\n ownerScope = inject(ActionBarScope, { optional: true });\n constructor() {\n if (this.ownerScope) {\n this.ownerScope.onNavButtonInit(this);\n }\n }\n\n ngOnDestroy() {\n if (this.ownerScope) {\n this.ownerScope.onNavButtonDestroy(this);\n }\n }\n}\n","/**\n * Utility method to ensure a NgModule is only imported once in a codebase, otherwise will throw to help prevent accidental double importing\n * @param parentModule Parent module name\n * @param moduleName The module name\n */\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\n if (parentModule) {\n throw new Error(`${moduleName} has already been loaded. Import ${moduleName} in the AppModule only.`);\n }\n}\n\n/**\n * Utility method which will only fire the callback once ever\n * @param fn callback to call only once\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function once(fn: Function) {\n let wasCalled = false;\n\n return function wrapper() {\n if (wasCalled) {\n return;\n }\n\n wasCalled = true;\n // eslint-disable-next-line prefer-spread, prefer-rest-params\n fn.apply(null, arguments);\n };\n}\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\nexport function isListLikeIterable(obj: any): boolean {\n if (!isJsObject(obj)) return false;\n return (\n Array.isArray(obj) ||\n (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]\n Symbol.iterator in obj)\n ); // JS Iterable have a Symbol.iterator prop\n}\n\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n forwardRef,\n Host,\n HostListener,\n inject,\n Inject,\n InjectionToken,\n Input,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n CoreTypes,\n ItemEventData,\n KeyedTemplate,\n LayoutBase,\n ListView,\n ObservableArray,\n profile,\n SearchEventData,\n View,\n} from '@nativescript/core';\nimport type { Template as NsTemplate } from '@nativescript/core';\n\nimport { extractSingleViewRecursive } from '../../element-registry/registry';\nimport { NativeScriptDebug } from '../../trace';\nimport { isListLikeIterable } from '../../utils/general';\nimport { NgViewTemplate } from '../../view-refs';\nimport { DetachedLoader } from '../detached-loader';\n\nconst NG_VIEW = '_ngViewRef';\n\nexport interface TemplatedItemsHost<T = any> {\n registerTemplate(key: string, template: TemplateRef<T>);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<TemplatedItemsHost>('TemplatedItemsComponent');\n\nexport class ItemContext<T> {\n constructor(\n public $implicit?: T,\n public item?: T,\n public index?: number,\n public even?: boolean,\n public odd?: boolean,\n ) {}\n}\n\nexport class NsTemplatedItem<T> implements NgViewTemplate<{ index: number; data: T }> {\n constructor(\n private template: TemplateRef<ItemContext<T>>,\n public location: ViewContainerRef,\n private onCreate?: (view: View) => void,\n ) {}\n create(context?: { index: number; data: T }): View {\n const viewRef = this.location.createEmbeddedView(\n this.template,\n context ? this.setupItemContext(context) : new ItemContext(),\n );\n viewRef.detach(); // create detached, just beware this doesn't always work and the view might run the first CD anyway.\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n if (this.onCreate) {\n this.onCreate(resultView);\n }\n return resultView;\n }\n update(view: View, context?: { index: number; data: T }): void {\n const viewRef = this.getEmbeddedViewRef(view);\n this.setupItemContext(context, viewRef);\n viewRef?.detectChanges();\n }\n attach(view: View): void {\n const viewRef = this.getEmbeddedViewRef(view);\n viewRef?.reattach();\n viewRef?.detectChanges();\n }\n detach(view: View): void {\n const viewRef = this.getEmbeddedViewRef(view);\n viewRef?.detach();\n }\n dispose(view: View): void {\n const viewRef = this.getEmbeddedViewRef(view);\n viewRef?.destroy();\n }\n\n getEmbeddedViewRef(view: View): EmbeddedViewRef<ItemContext<T>> | undefined {\n let viewRef = view[NG_VIEW];\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && view instanceof LayoutBase && view.getChildrenCount() > 0) {\n viewRef = view.getChildAt(0)[NG_VIEW];\n }\n return viewRef;\n }\n\n isValid(view: View) {\n return !!this.getEmbeddedViewRef(view);\n }\n\n private setupItemContext(\n { index, data }: { index: number; data: T },\n oldView?: EmbeddedViewRef<ItemContext<T>>,\n ): ItemContext<T> {\n const context: ItemContext<T> = oldView ? oldView.context : new ItemContext<T>();\n context.$implicit = data;\n context.item = data;\n context.index = index;\n context.even = index % 2 === 0;\n context.odd = !context.even;\n return context;\n }\n}\n\nexport interface SetupItemViewArgs<T> {\n view: EmbeddedViewRef<ItemContext<T>>;\n nativeElement: View;\n data: T;\n index: number;\n context: ItemContext<T>;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ListView',\n template: `<DetachedContainer>\n <ng-container #loader></ng-container>\n </DetachedContainer>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DetachedLoader],\n providers: [{ provide: TEMPLATED_ITEMS_COMPONENT, useExisting: forwardRef(() => ListViewComponent) }],\n})\nexport class ListViewComponent<T = any> implements DoCheck, OnDestroy, AfterContentInit, TemplatedItemsHost {\n public get nativeElement(): ListView {\n return this.templatedItemsView;\n }\n\n private readonly _iterableDiffers: IterableDiffers = inject(IterableDiffers);\n private readonly _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n private readonly _elementRef: ElementRef = inject(ElementRef);\n\n // I believe this only exists so this can be inherited and people can override it.\n protected templatedItemsView: ListView = this._elementRef.nativeElement;\n protected _items: T[] | ObservableArray<T>;\n protected _differ: IterableDiffer<T>;\n protected _templateMap: Map<string, NsTemplatedItem<T>>;\n protected _viewToTemplate: WeakMap<View, string> = new WeakMap<View, string>();\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) loader: ViewContainerRef;\n\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs<T>>();\n\n @ContentChild(TemplateRef, { read: TemplateRef, static: false }) itemTemplateQuery: TemplateRef<ItemContext<T>>;\n\n // Sticky header template driven by Angular. Users can provide either:\n // 1) A string/Template bound to the ListView `[stickyHeaderTemplate]` input\n // (mirrors the XML attribute usage), or\n // 2) An Angular `<ng-template #nsStickyHeaderTemplate>` whose root becomes\n // the header view when using the external renderer.\n @ContentChild('nsStickyHeaderTemplate', { read: TemplateRef, static: false })\n stickyHeaderTemplateRef: TemplateRef<ItemContext<any>>;\n\n fallbackItemTemplate: TemplateRef<ItemContext<T>>;\n\n /**\n * Sticky header template as supported by core ListView (string or NsTemplate).\n * This allows direct string templates just like XML usage:\n * `<ListView stickyHeaderTemplate=\"<GridLayout>...</GridLayout>\">`.\n */\n @Input()\n get stickyHeaderTemplate(): string | NsTemplate {\n return this.templatedItemsView?.stickyHeaderTemplate as any;\n }\n set stickyHeaderTemplate(value: string | NsTemplate) {\n if (this.templatedItemsView) {\n // If Angular template reference is also provided, that takes precedence\n // and will be wired in ngAfterContentInit via stickyHeaderTemplateRef.\n this.templatedItemsView.stickyHeaderTemplate = value as any;\n }\n }\n\n @Input()\n get stickyHeader(): boolean {\n return this.templatedItemsView?.stickyHeader;\n }\n set stickyHeader(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.stickyHeader = value;\n }\n }\n\n @Input()\n get stickyHeaderHeight(): CoreTypes.LengthType {\n return this.templatedItemsView?.stickyHeaderHeight;\n }\n set stickyHeaderHeight(value: number) {\n if (this.templatedItemsView) {\n this.templatedItemsView.stickyHeaderHeight = value;\n }\n }\n\n @Input()\n get stickyHeaderTopPadding(): any {\n return this.templatedItemsView?.stickyHeaderTopPadding as any;\n }\n set stickyHeaderTopPadding(value: any) {\n if (this.templatedItemsView) {\n this.templatedItemsView.stickyHeaderTopPadding = value;\n }\n }\n\n @Input()\n get sectioned(): boolean {\n return this.templatedItemsView?.sectioned;\n }\n set sectioned(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.sectioned = value;\n }\n }\n\n @Input()\n get showSearch(): boolean {\n return this.templatedItemsView?.showSearch;\n }\n set showSearch(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.showSearch = value;\n }\n }\n\n @Input()\n get searchAutoHide(): boolean {\n return this.templatedItemsView?.searchAutoHide;\n }\n set searchAutoHide(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.searchAutoHide = value;\n }\n }\n\n @Input()\n get items() {\n return this._items;\n }\n\n set items(value: T[] | ObservableArray<T>) {\n this._items = value;\n let needDiffer = true;\n if (value instanceof ObservableArray) {\n needDiffer = false;\n }\n if (needDiffer && !this._differ && isListLikeIterable(value)) {\n this._differ = this._iterableDiffers.find(this._items).create((_index, item) => {\n return item;\n });\n }\n\n this.templatedItemsView.items = this._items;\n }\n\n /**\n * @deprecated\n */\n constructor(_elementRef: ElementRef);\n /**\n * @deprecated\n */\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _changeDetectorRef: ChangeDetectorRef);\n /**\n * @deprecated\n */\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _ngZone: NgZone);\n constructor();\n // this elementRef is only here for backwards compatibility reasons\n constructor(_elementRef?: ElementRef) {\n if (_elementRef) {\n this.templatedItemsView = _elementRef.nativeElement;\n }\n }\n\n ngAfterContentInit() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('TemplatedItemsView.ngAfterContentInit()');\n }\n\n this.setItemTemplates();\n\n // If an Angular sticky header template is provided, convert it into a\n // core `Template` function. Core will call this to create header views\n // and then assign bindingContext for each section.\n if (this.stickyHeaderTemplateRef && this.templatedItemsView) {\n const angularHeaderTemplate: NsTemplate = () => {\n const viewRef = this.loader.createEmbeddedView(this.stickyHeaderTemplateRef as TemplateRef<ItemContext<any>>);\n const root = getItemViewRoot(viewRef as EmbeddedViewRef<unknown>);\n (root as any)[NG_VIEW] = viewRef;\n return root;\n };\n\n this.templatedItemsView.stickyHeaderTemplate = angularHeaderTemplate;\n }\n }\n\n ngOnDestroy() {\n this.templatedItemsView = null;\n\n if (this._templateMap) {\n this._templateMap.clear();\n }\n }\n\n private setItemTemplates() {\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.fallbackItemTemplate = this.itemTemplateQuery;\n if (this.fallbackItemTemplate && !this._templateMap?.has('default')) {\n // apparently you can create a Core ListView without a template...\n // we also add a fallback default for when the user sets multiple templates but no templateSelector\n this.registerTemplate('default', this.fallbackItemTemplate);\n }\n\n if (this._templateMap) {\n // sometimes templates are registered before loader is ready, so we update here\n this._templateMap.forEach((t) => (t.location = this.loader));\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value, key) => {\n templates.push({\n createView: () => null, // we'll handle creation later, otherwise core will create an invalid template\n key,\n });\n });\n this.templatedItemsView.itemTemplates = templates;\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext<T>>) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog(`registerTemplate for key: ${key}, ${this.loader}`);\n }\n\n if (!this._templateMap) {\n this._templateMap = new Map<string, NsTemplatedItem<T>>();\n }\n\n this._templateMap.set(key, new NsTemplatedItem<T>(template, this.loader, (v) => this._viewToTemplate.set(v, key)));\n }\n\n @HostListener('itemLoading', ['$event'])\n @profile\n public onItemLoading(args: ItemEventData) {\n if (!this._templateMap) {\n return;\n }\n const index = args.index;\n const lview: ListView = args.object as ListView;\n const items = lview.items as any;\n\n const isSectioned = lview.sectioned;\n let currentItem: any;\n let absoluteIndex = index;\n\n if (isSectioned) {\n const sectionIndex = this.resolveSectionIndex(args, args.view as View);\n const rowIndex = this.resolveRowIndex(args, args.view as View);\n\n if (sectionIndex === undefined || rowIndex === undefined) {\n return;\n }\n\n currentItem = this.getSectionItem(lview, sectionIndex, rowIndex);\n if (currentItem === undefined || currentItem === null) {\n return;\n }\n\n absoluteIndex = this.computeAbsoluteIndex(lview, sectionIndex, rowIndex);\n } else {\n currentItem = this.getFlatItem(items, index);\n if (currentItem === undefined || currentItem === null) {\n return;\n }\n }\n\n let template: NsTemplatedItem<T>;\n\n if (args.view) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog(`onItemLoading: ${index} - Reusing existing view`);\n }\n\n let templateKey = this._viewToTemplate.get(args.view as View);\n if (!templateKey && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n templateKey = this._viewToTemplate.get(args.view.getChildAt(0));\n }\n if (!templateKey) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewError(`ViewReference not found for item ${index}. View recycling is not working`);\n }\n return;\n }\n template = this._templateMap.get(templateKey);\n template.update(args.view as View, { index: absoluteIndex, data: currentItem });\n } else {\n const templateKey =\n typeof lview.itemTemplateSelector === 'function'\n ? (lview.itemTemplateSelector as any)(currentItem, absoluteIndex, items)\n : 'default';\n template = this._templateMap.get(templateKey);\n if (!template) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewError(`Template for key '${templateKey}' not found.`);\n }\n return;\n }\n args.view = template.create({ index: absoluteIndex, data: currentItem });\n }\n\n const viewRef = template.getEmbeddedViewRef(args.view as View);\n if (viewRef) {\n this.setupViewRef(viewRef, currentItem, absoluteIndex, args.view as View);\n template.attach(args.view as View);\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n private resolveSectionIndex(args: ItemEventData, nativeView?: View): number | undefined {\n const eventSection = Number.isInteger((args as any).section) ? (args as any).section : undefined;\n if (eventSection !== undefined) {\n return eventSection;\n }\n const viewSection =\n nativeView && Number.isInteger((nativeView as any)._listViewSectionIndex)\n ? (nativeView as any)._listViewSectionIndex\n : undefined;\n if (viewSection !== undefined) {\n return viewSection;\n }\n return undefined;\n }\n\n private resolveRowIndex(args: ItemEventData, nativeView?: View): number | undefined {\n if (Number.isInteger(args.index)) {\n return args.index;\n }\n const viewRow =\n nativeView && Number.isInteger((nativeView as any)._listViewItemIndex)\n ? (nativeView as any)._listViewItemIndex\n : undefined;\n return viewRow;\n }\n\n private getSectionItem(listView: ListView, sectionIndex: number, rowIndex: number): any {\n if (sectionIndex < 0 || rowIndex < 0) {\n return undefined;\n }\n const sectionItems = (listView as any)._getItemsInSection?.(sectionIndex);\n if (!sectionItems) {\n return undefined;\n }\n if (typeof sectionItems.getItem === 'function') {\n return sectionItems.getItem(rowIndex);\n }\n return sectionItems[rowIndex];\n }\n\n private computeAbsoluteIndex(listView: ListView, sectionIndex: number, rowIndex: number): number {\n let absoluteIndex = rowIndex;\n for (let i = 0; i < sectionIndex; i++) {\n const sectionItems = (listView as any)._getItemsInSection?.(i);\n absoluteIndex += this.getCollectionLength(sectionItems);\n }\n return absoluteIndex;\n }\n\n private getCollectionLength(collection: any): number {\n if (!collection) {\n return 0;\n }\n if (typeof collection.length === 'number') {\n return collection.length;\n }\n if (typeof collection.getCount === 'function') {\n return collection.getCount();\n }\n return 0;\n }\n\n private getFlatItem(items: any, index: number): any {\n if (!items) {\n return undefined;\n }\n if (typeof items.getItem === 'function') {\n return items.getItem(index);\n }\n return Array.isArray(items) ? items[index] : undefined;\n }\n\n public setupViewRef(viewRef: EmbeddedViewRef<ItemContext<T>>, data: T, index: number, nativeElement: View): void {\n const context = viewRef.context;\n this.setupItemView.next({ view: viewRef, nativeElement, data: data, index: index, context: context });\n }\n\n ngDoCheck() {\n if (this._differ) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('ngDoCheck() - execute differ');\n }\n\n const changes = this._differ.diff(this._items as T[]);\n if (changes) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('ngDoCheck() - refresh');\n }\n\n this.templatedItemsView.refresh();\n }\n }\n }\n}\n\nexport type RootLocator = (nodes: Array<unknown>, nestLevel: number) => View;\n\nexport function getItemViewRoot(\n viewRef: EmbeddedViewRef<unknown>,\n rootLocator: RootLocator = extractSingleViewRecursive,\n): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({\n selector: '[nsTemplateKey],[nsTemplateKeys]',\n standalone: true,\n})\nexport class TemplateKeyDirective<T> {\n constructor(\n private templateRef: TemplateRef<T>,\n @Host() @Inject(TEMPLATED_ITEMS_COMPONENT) private comp: TemplatedItemsHost<T>,\n ) {}\n\n @Input()\n set nsTemplateKey(value: string) {\n if (this.comp && this.templateRef) {\n this.comp.registerTemplate(value, this.templateRef);\n }\n }\n @Input()\n set nsTemplateKeys(values: string[]) {\n // single template with multiple keys\n if (this.comp && this.templateRef && values) {\n values.forEach((value) => this.comp.registerTemplate(value, this.templateRef));\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Frame } from '@nativescript/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FrameService {\n // TODO: Add any methods that are needed to handle frame/page navigation\n getFrame(): Frame {\n return Frame.topmost();\n }\n}\n","import { Frame, NavigationTransition } from '@nativescript/core';\nimport { DefaultUrlSerializer, UrlSegmentGroup, UrlTree, ActivatedRouteSnapshot, Params } from '@angular/router';\n\nexport interface LocationState {\n queryParams: Params;\n segmentGroup: UrlSegmentGroup;\n isRootSegmentGroup: boolean;\n isPageNavigation: boolean;\n frame?: Frame;\n}\n\nexport interface NavigationOptions {\n clearHistory?: boolean;\n animated?: boolean;\n transition?: NavigationTransition;\n replaceUrl?: boolean;\n}\n\nexport class Outlet {\n showingModal: boolean;\n modalNavigationDepth: number;\n parent: Outlet;\n _navigatingBackOutlets = new Set<string>();\n get isPageNavigationBack() {\n return this._navigatingBackOutlets.size > 0;\n }\n set isPageNavigationBack(isBack: boolean) {\n if (!isBack) {\n if (this._navigatingBackOutlets.size > 0) {\n this._navigatingBackOutlets.delete(this._navigatingBackOutlets.values().next().value);\n }\n } else {\n for (const key of this.outletKeys) {\n this._navigatingBackOutlets.add(key);\n }\n }\n }\n\n // More than one key available when using NSEmptyOutletComponent component\n // in module that lazy loads children (loadChildren) and has outlet name.\n outletKeys: Array<string>;\n\n // More than one frame available when using NSEmptyOutletComponent component\n // in module that lazy loads children (loadChildren) and has outlet name.\n frames: Array<Frame> = [];\n // The url path to the Outlet.\n // E.G: the path to Outlet3 that is nested Outlet1(home)->Outlet2(nested1)->Outlet3(nested2)\n // will be 'home/nested1'\n path: string;\n pathByOutlets: string;\n states: Array<LocationState> = [];\n isNSEmptyOutlet: boolean;\n\n // Used in reuse-strategy by its children to determine if they should be detached too.\n shouldDetach = true;\n constructor(outletKey: string, path: string, pathByOutlets: string, modalNavigationDepth?: number) {\n this.outletKeys = [outletKey];\n this.isPageNavigationBack = false;\n this.showingModal = false;\n this.modalNavigationDepth = modalNavigationDepth || 0;\n this.pathByOutlets = pathByOutlets;\n this.path = path;\n }\n\n setOutletKeyNavigatingBack(key: string) {\n const nests = key.split('/');\n this.outletKeys\n .filter((k) => k.split('/').length >= nests.length)\n .forEach((k) => {\n this._navigatingBackOutlets.add(k);\n });\n }\n\n containsFrame(frame: Frame): boolean {\n return this.frames.indexOf(frame) > -1;\n }\n\n peekState(): LocationState {\n if (this.states.length > 0) {\n return this.states[this.states.length - 1];\n }\n return null;\n }\n\n containsTopState(stateUrl: string): boolean {\n const lastState = this.peekState();\n return lastState && lastState.segmentGroup.toString() === stateUrl;\n }\n\n // Search for frame that can go back.\n // Nested 'primary' outlets could result in Outlet with multiple navigatable frames.\n getFrameToBack(): Frame {\n let frame = this.frames[this.frames.length - 1];\n\n if (!this.isNSEmptyOutlet) {\n for (let index = this.frames.length - 1; index >= 0; index--) {\n const currentFrame = this.frames[index];\n if (currentFrame.canGoBack()) {\n frame = currentFrame;\n break;\n }\n }\n }\n\n return frame;\n }\n}\n\nexport const defaultNavOptions: NavigationOptions = {\n clearHistory: false,\n animated: true,\n};\n","import { LocationChangeEvent, LocationStrategy } from '@angular/common';\nimport { Inject, Injectable, Optional, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, DefaultUrlSerializer, Params, UrlSegmentGroup, UrlTree } from '@angular/router';\nimport { Frame } from '@nativescript/core';\nimport { START_PATH } from '../../tokens';\nimport { NativeScriptDebug } from '../../trace';\nimport { FrameService } from '../frame.service';\nimport { defaultNavOptions, LocationState, NavigationOptions, Outlet } from './ns-location-utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NSLocationStrategy extends LocationStrategy implements OnDestroy {\n private outlets: Array<Outlet> = [];\n private currentOutlet: Outlet;\n\n private popStateCallbacks = new Array<(_: any) => any>();\n private currentUrlTree: UrlTree;\n\n public _modalNavigationDepth = 0;\n\n constructor(\n private frameService: FrameService,\n @Inject(START_PATH) @Optional() private startPath?: string,\n ) {\n super();\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.constructor()');\n }\n }\n\n getState(): unknown {\n return this.currentOutlet && this.currentOutlet.peekState();\n }\n\n path(): string {\n if (!this.currentUrlTree) {\n return this.startPath || '/';\n }\n\n const state = this.currentOutlet && this.currentOutlet.peekState();\n if (!state) {\n return '/';\n }\n\n const tree = this.currentUrlTree;\n const changedOutlet = this.getSegmentGroupByOutlet(this.currentOutlet);\n\n // Handle case where the user declares a component at path \"/\".\n // The url serializer doesn't parse this url as having a primary outlet.\n if (state.isRootSegmentGroup) {\n tree.root = state.segmentGroup;\n } else if (changedOutlet) {\n this.updateSegmentGroup(tree.root, changedOutlet, state.segmentGroup);\n }\n\n const urlSerializer = new DefaultUrlSerializer();\n tree.queryParams = state.queryParams;\n const url = urlSerializer.serialize(tree);\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.path(): ' + url);\n }\n return url;\n }\n\n prepareExternalUrl(internal: string): string {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.prepareExternalUrl() internal: ' + internal);\n }\n return internal;\n }\n\n pushState(state: any, title: string, url: string, queryParams: string): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.pushState state: ' + `${state}, title: ${title}, url: ${url}, queryParams: ${queryParams}`);\n }\n this.pushStateInternal(state, title, url, queryParams);\n }\n\n pushStateInternal(state: any, title: string, url: string, queryParams: string, replace = false): void {\n const urlSerializer = new DefaultUrlSerializer();\n this.currentUrlTree = urlSerializer.parse(url);\n const urlTreeRoot = this.currentUrlTree.root;\n\n // Handle case where the user declares a component at path \"/\".\n // The url serializer doesn't parse this url as having a primary outlet.\n if (!Object.keys(urlTreeRoot.children).length) {\n const segmentGroup = this.currentUrlTree && this.currentUrlTree.root;\n const outletKey = this.getOutletKey(this.getSegmentGroupFullPath(segmentGroup), 'primary');\n const outlet = this.findOutlet(outletKey);\n\n if (outlet && this.updateStates(outlet, segmentGroup, this.currentUrlTree.queryParams, replace)) {\n this.currentOutlet = outlet; // If states updated\n } else if (!outlet) {\n // tslint:disable-next-line:max-line-length\n const rootOutlet = this.createOutlet('primary', null, segmentGroup, null, null, this.currentUrlTree.queryParams);\n this.currentOutlet = rootOutlet;\n }\n\n this.currentOutlet.peekState().isRootSegmentGroup = true;\n return;\n }\n\n const queue = [];\n let currentTree = <any>urlTreeRoot;\n\n while (currentTree) {\n Object.keys(currentTree.children).forEach((outletName) => {\n const currentSegmentGroup = currentTree.children[outletName];\n currentSegmentGroup.outlet = outletName;\n currentSegmentGroup.root = urlTreeRoot;\n\n const outletPath = this.getSegmentGroupFullPath(currentTree);\n const outletKey = this.getOutletKey(outletPath, outletName);\n let outlet = this.findOutlet(outletKey);\n\n const parentOutletName = currentTree.outlet || '';\n const parentOutletPath = this.getSegmentGroupFullPath(currentTree.parent);\n const parentOutletKey = this.getOutletKey(parentOutletPath, parentOutletName);\n const parentOutlet = this.findOutlet(parentOutletKey);\n\n const containsLastState = outlet && outlet.containsTopState(currentSegmentGroup.toString());\n if (!outlet) {\n // tslint:disable-next-line:max-line-length\n outlet = this.createOutlet(outletKey, outletPath, currentSegmentGroup, parentOutlet, this._modalNavigationDepth, this.currentUrlTree.queryParams);\n this.currentOutlet = outlet;\n } else if (this._modalNavigationDepth > 0 && outlet.showingModal && !containsLastState) {\n // Navigation inside modal view.\n this.upsertModalOutlet(outlet, currentSegmentGroup, this.currentUrlTree.queryParams, replace);\n } else {\n outlet.parent = parentOutlet;\n\n if (this.updateStates(outlet, currentSegmentGroup, this.currentUrlTree.queryParams, replace)) {\n this.currentOutlet = outlet; // If states updated\n }\n }\n\n queue.push(currentSegmentGroup);\n });\n\n currentTree = queue.shift();\n }\n }\n\n replaceState(state: any, title: string, url: string, queryParams: string): void {\n const states = this.currentOutlet && this.currentOutlet.states;\n\n if (states && states.length > 0) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.replaceState changing existing state: ' + `${state}, title: ${title}, url: ${url}, queryParams: ${queryParams}`);\n }\n this.pushStateInternal(state, title, url, queryParams, true);\n } else {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.replaceState pushing new state: ' + `${state}, title: ${title}, url: ${url}, queryParams: ${queryParams}`);\n }\n this.pushStateInternal(state, title, url, queryParams);\n }\n }\n\n forward(): void {\n throw new Error('NSLocationStrategy.forward() - not implemented');\n }\n\n back(outlet?: Outlet, frame?: Frame): void {\n this.currentOutlet = outlet || this.currentOutlet;\n\n if (this.currentOutlet.isPageNavigationBack) {\n const states = this.currentOutlet.states;\n // We are navigating to the previous page\n // clear the stack until we get to a page navigation state\n let state = states.pop();\n let count = 1;\n\n if (frame) {\n while (state.frame && state.frame !== frame) {\n state = states.pop();\n count++;\n }\n }\n\n while (!state.isPageNavigation) {\n state = states.pop();\n count++;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`NSLocationStrategy.back() while navigating back. States popped: ${count}`);\n }\n this.callPopState(state, true);\n } else {\n const state = this.currentOutlet.peekState();\n if (state && state.isPageNavigation) {\n // This was a page navigation - so navigate through frame.\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.back() while not navigating back but top' + ' state is page - will call frame.goBack()');\n }\n\n if (!outlet) {\n const topmostFrame = this.frameService.getFrame();\n this.currentOutlet = this.getOutletByFrame(topmostFrame) || this.currentOutlet;\n }\n\n const frameToBack: Frame = this.currentOutlet.getFrameToBack();\n if (frameToBack) {\n frameToBack.goBack();\n }\n } else {\n // Nested navigation - just pop the state\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.back() while not navigating back but top' + ' state is not page - just pop');\n }\n\n this.callPopState(this.currentOutlet.states.pop(), true);\n }\n }\n }\n\n canGoBack(outlet?: Outlet) {\n outlet = outlet || this.currentOutlet;\n return outlet.states.length > 1;\n }\n\n onPopState(fn: (_: any) => any): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.onPopState');\n }\n this.popStateCallbacks.push(fn);\n }\n\n getBaseHref(): string {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.getBaseHref()');\n }\n return '';\n }\n\n private callPopState(state: LocationState, pop: boolean = true, outlet?: Outlet) {\n outlet = outlet || this.currentOutlet;\n const urlSerializer = new DefaultUrlSerializer();\n const changedOutlet = this.getSegmentGroupByOutlet(outlet);\n\n if (state && changedOutlet) {\n this.updateSegmentGroup(this.currentUrlTree.root, changedOutlet, state.segmentGroup);\n } else if (changedOutlet) {\n // when closing modal view there are scenarios (e.g. root viewContainerRef) when we need\n // to clean up the named page router outlet to make sure we will open the modal properly again if needed.\n this.updateSegmentGroup(this.currentUrlTree.root, changedOutlet, null);\n }\n\n const url = urlSerializer.serialize(this.currentUrlTree);\n const change: LocationChangeEvent = { state, type: 'popstate' };\n for (const fn of this.popStateCallbacks) {\n fn(change);\n }\n }\n\n public toString() {\n let result = [];\n\n this.outlets.forEach((outlet) => {\n const outletStates = outlet.states;\n const outletLog = outletStates\n // tslint:disable-next-line:max-line-length\n .map((v, i) => `${outlet.outletKeys}.${i}.[${v.isPageNavigation ? 'PAGE' : 'INTERNAL'}].[${outlet.modalNavigationDepth ? 'MODAL' : 'BASE'}] \"${v.segmentGroup.toString()}\"`)\n .reverse();\n\n result = result.concat(outletLog);\n });\n\n return result.join('\\n');\n }\n\n // Methods for syncing with page navigation in PageRouterOutlet\n public _beginBackPageNavigation(frame: Frame, outletKey: string) {\n const outlet: Outlet = this.getOutletByFrame(frame);\n\n if (!outlet || outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerError('Attempted to call startGoBack while going back.');\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.startGoBack()');\n }\n outlet.setOutletKeyNavigatingBack(outletKey);\n // outlet.isPageNavigationBack = true;\n // we find all the children and also set their isPageNavigationBack\n this.outlets\n .filter((o) => {\n let parent = o.parent;\n while (parent) {\n if (parent === outlet) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n })\n .forEach((o) => (o.isPageNavigationBack = true));\n\n this.currentOutlet = outlet;\n }\n\n public _finishBackPageNavigation(frame: Frame) {\n const outlet: Outlet = this.getOutletByFrame(frame);\n\n if (!outlet || !outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerError('Attempted to call endGoBack while not going back.');\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.finishBackPageNavigation()');\n }\n outlet.isPageNavigationBack = false;\n }\n\n public _beginModalNavigation(frame: Frame): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy._beginModalNavigation()');\n }\n\n this.currentOutlet = this.getOutletByFrame(frame) || this.currentOutlet;\n\n // It is possible to have frame, but not corresponding Outlet, if\n // showing modal dialog on app.component.ts ngOnInit() e.g. In that case\n // the modal is treated as none modal navigation.\n if (this.currentOutlet) {\n this.currentOutlet.showingModal = true;\n this._modalNavigationDepth++;\n }\n }\n\n public _closeModalNavigation() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.closeModalNavigation()');\n }\n\n const isShowingModal = this._modalNavigationDepth > 0;\n\n if (isShowingModal) {\n this._modalNavigationDepth--;\n }\n\n // currentOutlet should be the one that corresponds to the topmost frame\n const topmostOutlet = this.getOutletByFrame(this.frameService.getFrame());\n const outlet = this.findOutletByModal(this._modalNavigationDepth, isShowingModal) || topmostOutlet;\n\n if (outlet) {\n this.currentOutlet = outlet;\n this.currentOutlet.showingModal = false;\n this.callPopState(this.currentOutlet.peekState(), false);\n // this is needed because angular does a setTimeout on onPopState, so if we don't do this we might end up with inconsistent state\n return new Promise((resolve) => setTimeout(resolve, 0));\n }\n }\n\n public _beginPageNavigation(frame: Frame, options?: NavigationOptions): NavigationOptions {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy._beginPageNavigation()');\n }\n\n this.currentOutlet = this.getOutletByFrame(frame) || this.currentOutlet;\n const lastState = this.currentOutlet.peekState();\n\n if (lastState) {\n lastState.isPageNavigation = true;\n }\n\n const navOptions = options || defaultNavOptions;\n\n if (navOptions.clearHistory) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy._beginPageNavigation clearing states history');\n }\n this.currentOutlet.states = [lastState];\n }\n return navOptions;\n }\n\n public _getOutlets(): Array<Outlet> {\n return this.outlets;\n }\n\n updateOutletFrame(outlet: Outlet, frame: Frame, isEmptyOutletFrame: boolean) {\n const lastState = outlet.peekState();\n\n if (lastState && !lastState.frame && !isEmptyOutletFrame) {\n lastState.frame = frame;\n }\n\n if (!outlet.containsFrame(frame)) {\n outlet.frames.push(frame);\n }\n this.currentOutlet = outlet;\n }\n\n clearOutlet(frame: Frame) {\n this.outlets = this.outlets.filter((currentOutlet) => {\n let isEqualToCurrent;\n\n if (this.currentOutlet) {\n isEqualToCurrent = currentOutlet.pathByOutlets === this.currentOutlet.pathByOutlets;\n }\n\n // Remove outlet from the url tree.\n if (currentOutlet.containsFrame(frame) && !isEqualToCurrent) {\n this.callPopState(null, true, currentOutlet);\n }\n\n // Skip frames filtering since currentOutlet is <router-outlet> when no frames available.\n if (currentOutlet.frames.length && !currentOutlet.isNSEmptyOutlet) {\n currentOutlet.frames = currentOutlet.frames.filter((currentFrame) => currentFrame !== frame);\n return currentOutlet.frames.length;\n }\n\n return !currentOutlet.containsFrame(frame);\n });\n }\n\n getSegmentGroupFullPath(segmentGroup: UrlSegmentGroup): string {\n let fullPath = '';\n\n while (segmentGroup) {\n const url = segmentGroup.toString();\n\n if (fullPath) {\n fullPath = (url ? url + '/' : '') + fullPath;\n } else {\n fullPath = url;\n }\n\n segmentGroup = segmentGroup.parent;\n }\n\n return fullPath;\n }\n\n getRouteFullPath(currentRoute: any): string {\n const outletName = currentRoute.outlet;\n let fullPath;\n\n currentRoute = currentRoute.parent;\n while (currentRoute) {\n const urls = currentRoute.url.value || currentRoute.url;\n let url = urls;\n\n if (Array.isArray(urls)) {\n url = url.join('/');\n }\n\n fullPath = fullPath ? (url ? url + '/' : url) + fullPath : url;\n currentRoute = currentRoute.parent;\n }\n\n return fullPath ? fullPath + '-' + outletName : outletName;\n }\n\n getPathByOutlets(urlSegmentGroup: any): string {\n if (!urlSegmentGroup) {\n return '';\n }\n\n let pathToOutlet;\n let lastPath = urlSegmentGroup.outlet || 'primary';\n let parent = urlSegmentGroup.parent;\n\n while (parent && urlSegmentGroup.root !== parent) {\n if (parent && parent.outlet !== lastPath) {\n if (lastPath === 'primary') {\n lastPath = parent.outlet;\n } else {\n lastPath = parent.outlet;\n pathToOutlet = lastPath + '-' + (pathToOutlet || urlSegmentGroup.outlet);\n }\n }\n\n parent = parent.parent;\n }\n\n return pathToOutlet || lastPath;\n }\n\n findOutlet(outletKey: string, activatedRouteSnapshot?: ActivatedRouteSnapshot): Outlet {\n let outlet: Outlet = this.outlets.find((currentOutlet) => {\n const equalModalDepth = currentOutlet.modalNavigationDepth === this._modalNavigationDepth;\n return equalModalDepth && currentOutlet.outletKeys.indexOf(outletKey) > -1;\n });\n\n // No Outlet with the given outletKey could happen when using nested unnamed p-r-o\n // primary -> primary -> prymary\n if (!outlet && activatedRouteSnapshot) {\n const pathByOutlets = this.getPathByOutlets(activatedRouteSnapshot);\n outlet = this.outlets.find((currentOutlet) => {\n const equalModalDepth = currentOutlet.modalNavigationDepth === this._modalNavigationDepth;\n return equalModalDepth && currentOutlet.pathByOutlets === pathByOutlets;\n });\n }\n\n return outlet;\n }\n\n private findOutletByModal(modalNavigation: number, isShowingModal?: boolean): Outlet {\n return this.outlets.find((outlet) => {\n const equalModalDepth = outlet.modalNavigationDepth === modalNavigation;\n return isShowingModal ? equalModalDepth && outlet.showingModal : equalModalDepth;\n });\n }\n\n private getOutletByFrame(frame: Frame): Outlet {\n let outlet;\n\n for (let index = 0; index < this.outlets.length; index++) {\n const currentOutlet = this.outlets[index];\n\n if (currentOutlet.containsFrame(frame)) {\n outlet = currentOutlet;\n break;\n }\n }\n\n return outlet;\n }\n\n private updateStates(outlet: Outlet, currentSegmentGroup: UrlSegmentGroup, queryParams: Params, replace = false): boolean {\n const isNewPage = outlet.states.length === 0;\n const lastState = outlet.states[outlet.states.length - 1];\n const equalStateUrls = outlet.containsTopState(currentSegmentGroup.toString());\n\n const locationState: LocationState = {\n segmentGroup: currentSegmentGroup,\n isRootSegmentGroup: false,\n isPageNavigation: isNewPage,\n queryParams: { ...queryParams },\n };\n\n if (!lastState || !equalStateUrls) {\n if (replace) {\n outlet.states.pop();\n }\n outlet.states.push(locationState);\n\n // Update last state segmentGroup of parent Outlet.\n if (this._modalNavigationDepth === 0 && !outlet.showingModal) {\n this.updateParentsStates(outlet, currentSegmentGroup.parent);\n }\n\n return true;\n } else {\n if (lastState && equalStateUrls) {\n // update query params for last state\n lastState.queryParams = { ...queryParams };\n }\n }\n\n return false;\n }\n\n private updateParentsStates(outlet: Outlet, newSegmentGroup: UrlSegmentGroup) {\n let parentOutlet = outlet.parent;\n\n // Update parents lastState segmentGroups\n while (parentOutlet && newSegmentGroup) {\n const state = parentOutlet.peekState();\n\n if (state) {\n state.segmentGroup = newSegmentGroup;\n newSegmentGroup = newSegmentGroup.parent;\n parentOutlet = parentOutlet.parent;\n }\n }\n }\n\n // tslint:disable-next-line:max-line-length\n private createOutlet(outletKey: string, path: string, segmentGroup: any, parent: Outlet, modalNavigation?: number, queryParams: Params = {}): Outlet {\n const pathByOutlets = this.getPathByOutlets(segmentGroup);\n const newOutlet = new Outlet(outletKey, path, pathByOutlets, modalNavigation);\n\n const locationState: LocationState = {\n segmentGroup: segmentGroup,\n isRootSegmentGroup: false,\n isPageNavigation: true, // It is a new OutletNode.\n queryParams: { ...queryParams },\n };\n\n newOutlet.states = [locationState];\n newOutlet.parent = parent;\n this.outlets.push(newOutlet);\n\n // Update last state segmentGroup of parent Outlet.\n if (this._modalNavigationDepth === 0 && !newOutlet.showingModal) {\n this.updateParentsStates(newOutlet, segmentGroup.parent);\n }\n\n return newOutlet;\n }\n\n private getSegmentGroupByOutlet(outlet: Outlet): UrlSegmentGroup {\n const pathList = outlet.pathByOutlets.split('-');\n let segmentGroup = this.currentUrlTree.root;\n let pathToOutlet;\n\n for (let index = 0; index < pathList.length; index++) {\n const currentPath = pathList[index];\n const childrenCount = Object.keys(segmentGroup.children).length;\n\n if (childrenCount && segmentGroup.children[currentPath]) {\n const url = segmentGroup.toString();\n pathToOutlet = pathToOutlet ? pathToOutlet + '/' + url : url;\n segmentGroup = segmentGroup.children[currentPath];\n } else {\n // If no child outlet found with the given name - forget about all previously found outlets.\n // example: seaching for 'primary-second-primary' shouldn't return 'primary-second'\n // if no 'primary' child available on 'second'.\n segmentGroup = null;\n break;\n }\n }\n\n // Paths should also match since there could be another Outlet\n // with the same pathByOutlets but different url path.\n if (segmentGroup && outlet.path && pathToOutlet && outlet.path !== pathToOutlet) {\n segmentGroup = null;\n }\n\n return segmentGroup;\n }\n\n // Traversal and replacement of segmentGroup.\n private updateSegmentGroup(rootNode: any, oldSegmentGroup: UrlSegmentGroup, newSegmentGroup: UrlSegmentGroup) {\n const queue = [];\n let currentTree = rootNode;\n\n while (currentTree) {\n Object.keys(currentTree.children).forEach((outletName) => {\n if (currentTree.children[outletName] === oldSegmentGroup) {\n if (newSegmentGroup) {\n currentTree.children[outletName] = newSegmentGroup;\n } else {\n delete currentTree.children[outletName];\n }\n }\n queue.push(currentTree.children[outletName]);\n });\n\n currentTree = queue.shift();\n }\n }\n\n private upsertModalOutlet(parentOutlet: Outlet, segmentedGroup: UrlSegmentGroup, queryParams: Params, replace = false) {\n let currentModalOutlet = this.findOutletByModal(this._modalNavigationDepth);\n\n // We want to treat every p-r-o as a standalone Outlet.\n if (!currentModalOutlet) {\n if (this._modalNavigationDepth > 1) {\n // The parent of the current Outlet should be the previous opened modal (if any).\n parentOutlet = this.findOutletByModal(this._modalNavigationDepth - 1);\n }\n\n // No currentModalOutlet available when opening 'primary' p-r-o.\n const outletName = 'primary';\n const outletPath = parentOutlet.peekState().segmentGroup.toString();\n const outletKey = this.getOutletKey(outletPath, outletName);\n // tslint:disable-next-line:max-line-length\n currentModalOutlet = this.createOutlet(outletKey, outletPath, segmentedGroup, parentOutlet, this._modalNavigationDepth, queryParams);\n this.currentOutlet = currentModalOutlet;\n } else if (this.updateStates(currentModalOutlet, segmentedGroup, queryParams, replace)) {\n this.currentOutlet = currentModalOutlet; // If states updated\n }\n }\n\n private getOutletKey(path: string, outletName: string): string {\n return path ? path + '-' + outletName : outletName;\n }\n\n ngOnDestroy() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.ngOnDestroy()');\n }\n\n this.outlets = [];\n this.currentOutlet = null;\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, Injector, NgModuleRef, NgZone, Type, ViewContainerRef } from '@angular/core';\nimport { Application, ContentView, Frame, ShowModalOptions, View, ViewBase } from '@nativescript/core';\nimport { Subject } from 'rxjs';\nimport { AppHostAsyncView, AppHostView } from '../../app-host-view';\nimport { DetachedLoader } from '../../cdk/detached-loader';\nimport { ComponentPortal } from '../../cdk/portal/common';\nimport { NativeScriptDomPortalOutlet } from '../../cdk/portal/nsdom-portal-outlet';\nimport { once } from '../../utils/general';\nimport { NgViewRef } from '../../view-refs';\nimport { NSLocationStrategy } from '../router/ns-location-strategy';\n\nexport type BaseShowModalOptions = Pick<ShowModalOptions, Exclude<keyof ShowModalOptions, 'closeCallback' | 'context'>>;\n\nexport interface ModalDialogOptions extends BaseShowModalOptions {\n context?: any;\n viewContainerRef?: ViewContainerRef;\n moduleRef?: NgModuleRef<any>;\n target?: View;\n /**\n * Use context data as component instance properties\n */\n useContextAsComponentProps?: boolean;\n}\n\nexport interface ShowDialogOptions extends ModalDialogOptions {\n containerRef?: ViewContainerRef;\n /**\n * which container to attach the change detection\n * if not specified, attaches to the ApplicationRef (recommended)\n */\n attachToContainerRef?: ViewContainerRef;\n injector: Injector;\n context: any;\n doneCallback;\n pageFactory?: any;\n parentView: ViewBase;\n resolver: ComponentFactoryResolver;\n type: Type<any>;\n}\n\nexport class ModalDialogParams {\n constructor(public context: any = {}, public closeCallback: (...args) => any) {}\n}\n\n@Injectable()\nexport class ModalDialogService {\n /**\n * Any opened ModalDialogParams in order of when they were opened (Most recent on top).\n * This can be used when you need access to ModalDialogParams outside of the component which had them injected.\n * Each is popped off as modals are closed.\n */\n openedModalParams: Array<ModalDialogParams>;\n _closed$: Subject<ModalDialogParams>;\n\n constructor(private location: NSLocationStrategy, private zone: NgZone, private appRef: ApplicationRef, private defaultInjector: Injector) {}\n\n /**\n * Emits anytime a modal is closed with the ModalDialogParams which were injected into the component which is now closing.\n * For example, can be used to wire up Rx flows outside the scope of just the component being handled.\n */\n get closed$() {\n if (!this._closed$) {\n this._closed$ = new Subject();\n }\n return this._closed$;\n }\n\n public showModal(type: Type<any>, options: ModalDialogOptions = {}): Promise<any> {\n // if (!options.viewContainerRef) {\n // throw new Error('No viewContainerRef: ' + 'Make sure you pass viewContainerRef in ModalDialogOptions.');\n // }\n\n let parentView = options.viewContainerRef?.element.nativeElement || Application.getRootView();\n if (options.target) {\n parentView = options.target;\n }\n\n if ((parentView instanceof AppHostView || parentView instanceof AppHostAsyncView) && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future modal views.\n if (parentView._ngDialogRoot) {\n parentView = parentView._ngDialogRoot;\n }\n\n // resolve from particular module (moduleRef)\n // or from same module as parentView (viewContainerRef)\n const componentInjector = options.moduleRef?.injector || options.viewContainerRef?.injector || this.defaultInjector;\n const resolver = componentInjector.get(ComponentFactoryResolver);\n\n let frame = parentView;\n if (!(parentView instanceof Frame)) {\n frame = (parentView.page && parentView.page.frame) || Frame.topmost();\n }\n\n this.location?._beginModalNavigation(frame);\n\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n try {\n this._showDialog({\n ...options,\n containerRef: options.viewContainerRef,\n injector: componentInjector,\n context: options.context,\n doneCallback: resolve,\n parentView,\n resolver,\n type,\n });\n } catch (err) {\n reject(err);\n }\n }, 10);\n });\n }\n\n private _showDialog(options: ShowDialogOptions): void {\n let componentViewRef: NgViewRef<unknown>;\n let detachedLoaderRef: ComponentRef<DetachedLoader>;\n let portalOutlet: NativeScriptDomPortalOutlet;\n\n const closeCallback = once(async (...args) => {\n options.doneCallback.apply(undefined, args);\n if (componentViewRef) {\n componentViewRef.firstNativeLikeView.closeModal();\n const params = this.openedModalParams.pop();\n if (this._closed$) {\n this._closed$.next(params);\n }\n await this.location._closeModalNavigation();\n if (detachedLoaderRef || portalOutlet) {\n this.zone.run(() => {\n portalOutlet?.dispose();\n detachedLoaderRef?.instance.detectChanges();\n detachedLoaderRef?.destroy();\n });\n }\n }\n });\n\n const modalParams = new ModalDialogParams(options.context, closeCallback);\n if (!this.openedModalParams) {\n this.openedModalParams = [];\n }\n this.openedModalParams.push(modalParams);\n\n const childInjector = Injector.create({\n providers: [{ provide: ModalDialogParams, useValue: modalParams }],\n parent: options.injector,\n });\n this.zone.run(() => {\n // if we ever support templates in the old API\n // if(options.templateRef) {\n // const detachedFactory = options.resolver.resolveComponentFactory(DetachedLoader);\n // if(options.attachToContainerRef) {\n // detachedLoaderRef = options.attachToContainerRef.createComponent(detachedFactory, 0, childInjector, null);\n // } else {\n // detachedLoaderRef = detachedFactory.create(childInjector); // this DetachedLoader is **completely** detached\n // this.appRef.attachView(detachedLoaderRef.hostView); // we attach it to the applicationRef, so it becomes a \"root\" view in angular's hierarchy\n // }\n // detachedLoaderRef.changeDetectorRef.detectChanges(); // force a change detection\n // detachedLoaderRef.instance.createTemplatePortal(options.templateRef);\n // }\n const targetView = new ContentView();\n const portal = new ComponentPortal(options.type);\n portalOutlet = new NativeScriptDomPortalOutlet(targetView, options.resolver, this.appRef, childInjector);\n const componentRef = portalOutlet.attach(portal);\n componentRef.changeDetectorRef.detectChanges();\n componentViewRef = new NgViewRef(componentRef);\n if (options.useContextAsComponentProps && options.context) {\n for (const key in options.context) {\n (<ComponentRef<any>>componentViewRef.ref).instance[key] = options.context[key];\n }\n }\n if (componentViewRef !== componentRef.location.nativeElement) {\n componentRef.location.nativeElement._ngDialogRoot = componentViewRef.firstNativeLikeView;\n }\n // if we don't detach the view from its parent, ios gets mad\n componentViewRef.detachNativeLikeView();\n options.parentView.showModal(componentViewRef.firstNativeLikeView, { ...options, closeCallback });\n });\n }\n}\n","/**\n * This decorator delays a potentially unsafe event (like loaded/unloaded that will sometimes be called before ngOnInit) to be handled safely by ensuring it's called after a lifecycle hook.\n * @param runAfterEvent event/function call to wait until the event can be fired ('ngOnInit', 'ngAfterViewInit', ...)\n * @param options Optional event handling params\n * @returns decorator\n */\nexport function NativeScriptNgSafeEvent(\n runAfterEvent: string,\n options: {\n onlyLast?: boolean;\n onlyFirst?: boolean;\n alwaysRunBefore?: string;\n } = {},\n) {\n const event = runAfterEvent;\n return function (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) {\n type NgSafeType = {\n events: {\n [key: string]: {\n done: boolean;\n originalDelegate: (...args: unknown[]) => unknown;\n buffer: Array<{\n key: string;\n fn: (...args: unknown[]) => unknown;\n }>;\n };\n };\n runBefore: {\n [propertyKey: string]: (...args: unknown[]) => unknown;\n };\n };\n function getNgSafe(): NgSafeType {\n return target['__ng_safe__'];\n }\n if (!target['__ng_safe__']) {\n const defaultNgSafe: NgSafeType = {\n events: {},\n runBefore: {},\n };\n target['__ng_safe__'] = defaultNgSafe;\n }\n if (!getNgSafe().events[event]) {\n getNgSafe().events[event] = {\n done: false,\n buffer: [],\n originalDelegate: target[event],\n };\n target[event] = function (...args) {\n try {\n if (getNgSafe().events[event].originalDelegate) {\n return getNgSafe().events[event].originalDelegate.apply(this, args);\n }\n } finally {\n getNgSafe().events[event].done = true;\n getNgSafe().events[event].buffer.forEach((fn) => fn.fn());\n getNgSafe().events[event].buffer = [];\n }\n };\n }\n\n if (options.alwaysRunBefore) {\n getNgSafe().runBefore[propertyKey] = target[options.alwaysRunBefore];\n\n target[`${options.alwaysRunBefore}`] = function (...args) {\n getNgSafe()\n .events[event].buffer.filter((v) => v.key === propertyKey)\n .forEach((fn) => fn.fn());\n getNgSafe().events[event].buffer = getNgSafe().events[event].buffer.filter((v) => v.key !== propertyKey);\n if (getNgSafe().runBefore[propertyKey]) {\n return getNgSafe().runBefore[propertyKey].apply(this, args);\n }\n };\n }\n\n const oldFn = descriptor.value;\n descriptor.value = function (...args) {\n if (getNgSafe().events[event].done) {\n return oldFn.apply(this, args);\n }\n let shouldPush = true;\n if (options.onlyFirst || options.onlyLast) {\n for (let i = 0; i < getNgSafe().events[event].buffer.length; i++) {\n if (getNgSafe().events[event].buffer[i].key === propertyKey) {\n if (options.onlyFirst) {\n shouldPush = false;\n break;\n }\n if (options.onlyLast) {\n getNgSafe().events[event].buffer.splice(i, 1);\n break;\n }\n }\n }\n }\n if (shouldPush) {\n getNgSafe().events[event].buffer.push({\n key: propertyKey,\n fn: oldFn.bind(this, args),\n });\n }\n };\n };\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TabView, TabViewItem } from '@nativescript/core';\n\nimport { InvisibleNode } from '../../views';\nimport { NativeScriptDebug } from '../../trace';\nimport { isBlank } from '../../utils';\n\ntype TextTransform = 'initial' | 'none' | 'capitalize' | 'uppercase' | 'lowercase';\nexport interface TabViewItemDef {\n title?: string;\n iconSource?: string;\n textTransform?: TextTransform;\n}\n\n@Directive({\n selector: 'TabView', // eslint-disable-line @angular-eslint/directive-selector\n standalone: true,\n})\nexport class TabViewDirective implements AfterViewInit {\n public tabView: TabView;\n private _selectedIndex: number;\n private viewInitialized: boolean;\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectedIndex = value;\n if (this.viewInitialized) {\n this.tabView.selectedIndex = this._selectedIndex;\n }\n }\n\n constructor(element: ElementRef) {\n this.tabView = element.nativeElement;\n }\n\n ngAfterViewInit() {\n this.viewInitialized = true;\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.rendererLog('this._selectedIndex: ' + this._selectedIndex);\n }\n if (!isBlank(this._selectedIndex)) {\n this.tabView.selectedIndex = this._selectedIndex;\n }\n }\n}\n\n@Directive({\n selector: '[tabItem]', // eslint-disable-line @angular-eslint/directive-selector\n standalone: true,\n})\nexport class TabViewItemDirective implements OnInit {\n private item: TabViewItem;\n private _config: TabViewItemDef;\n\n constructor(private owner: TabViewDirective, private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef) {}\n\n @Input('tabItem')\n set config(config: TabViewItemDef) {\n if (!this._config || this._config.iconSource !== config.iconSource || this._config.title !== config.title || this._config.textTransform !== config.textTransform) {\n this._config = config;\n this.applyConfig();\n }\n }\n\n get config(): TabViewItemDef {\n // tslint:disable-line:no-input-rename\n return this._config || {};\n }\n\n @Input()\n set title(title: string) {\n this.config = Object.assign(this.config, { title });\n }\n\n get title() {\n return this.config.title;\n }\n\n @Input()\n set iconSource(iconSource: string) {\n this.config = Object.assign(this.config, { iconSource });\n }\n\n get iconSource() {\n return this.config.iconSource;\n }\n\n @Input()\n set textTransform(textTransform: TextTransform) {\n this.config = Object.assign(this.config, { textTransform });\n }\n\n get textTransform() {\n return this.config.textTransform;\n }\n\n private ensureItem() {\n if (!this.item) {\n this.item = new TabViewItem();\n }\n }\n\n private applyConfig() {\n this.ensureItem();\n\n if (this.config.title) {\n this.item.title = this.config.title;\n }\n\n if (this.config.iconSource) {\n this.item.iconSource = this.config.iconSource;\n }\n\n // TabViewItem textTransform has a default value for Android that kick in\n // only if no value (even a null value) is set.\n if (this.config.textTransform) {\n this.item.textTransform = this.config.textTransform;\n }\n }\n\n ngOnInit() {\n this.applyConfig();\n\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n // Filter out text nodes and comments\n const realViews = viewRef.rootNodes.filter((node) => !(node instanceof InvisibleNode));\n\n if (realViews.length > 0) {\n this.item.view = realViews[0];\n\n const newItems = (this.owner.tabView.items || []).concat([this.item]);\n this.owner.tabView.items = newItems;\n }\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Inject } from '@angular/core';\nimport { IDevice, platformNames } from '@nativescript/core';\nimport { DEVICE } from '../../tokens';\n\n@Component({\n selector: 'android',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class AndroidFilterComponent {\n public show: boolean;\n\n constructor(@Inject(DEVICE) device: IDevice) {\n this.show = device.os === platformNames.android;\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Inject } from '@angular/core';\nimport { IDevice, platformNames } from '@nativescript/core';\nimport { DEVICE } from '../../tokens';\n\n@Component({\n selector: 'ios',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class IOSFilterComponent {\n public show: boolean;\n constructor(@Inject(DEVICE) device: IDevice) {\n this.show = device.os === platformNames.ios;\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'apple',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class AppleFilterComponent {\n public show = __APPLE__;\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Inject } from '@angular/core';\nimport { platformNames, IDevice } from '@nativescript/core';\nimport { DEVICE } from '../../tokens';\n\n@Component({\n selector: 'visionos',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class VisionOSFilterComponent {\n public show: boolean;\n\n constructor(@Inject(DEVICE) device: IDevice) {\n // Note: casting any to be backwards compatible\n // Available in 8.6+ only\n this.show = device.os === (platformNames as any).visionos;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { FramePageModule } from './cdk/frame-page/frame-page.module';\nimport { ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective } from './cdk/action-bar';\nimport { ListViewComponent, TemplateKeyDirective } from './cdk/list-view/list-view.component';\nimport { registerNativeScriptViewComponents } from './element-registry';\nimport { ModalDialogService } from './legacy/directives/dialogs';\nimport { TabViewDirective, TabViewItemDirective } from './cdk/tab-view';\nimport { AndroidFilterComponent } from './cdk/platform-filters/android-filter.component';\nimport { IOSFilterComponent } from './cdk/platform-filters/ios-filter.component';\nimport { AppleFilterComponent } from './cdk/platform-filters/apple-filter.component';\nimport { VisionOSFilterComponent } from './cdk/platform-filters/vision-filter.component';\n\nconst CDK_COMPONENTS = [ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent];\n\nregisterNativeScriptViewComponents();\n\n@NgModule({\n imports: [CommonModule, FramePageModule, ...CDK_COMPONENTS],\n exports: [CommonModule, FramePageModule, ...CDK_COMPONENTS],\n providers: [ModalDialogService],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class NativeScriptCommonModule {}\n","import { ViewportScroller, XhrFactory, ɵNullViewportScroller as NullViewportScroller } from '@angular/common';\nimport { ApplicationModule, ErrorHandler, Inject, NgModule, NO_ERRORS_SCHEMA, Optional, Provider, RendererFactory2, SkipSelf, StaticProvider, ɵINJECTOR_SCOPE as INJECTOR_SCOPE } from '@angular/core';\nimport { Color, Device, View } from '@nativescript/core';\nimport { AppHostView } from './app-host-view';\nimport { NativescriptXhrFactory } from './nativescript-xhr-factory';\nimport { NativeScriptRendererFactory } from './nativescript-renderer';\nimport { PlatformNamespaceFilter, NAMESPACE_FILTERS } from './property-filter';\nimport { APP_ROOT_VIEW, DEVICE, ENABLE_REUSABE_VIEWS, NATIVESCRIPT_ROOT_MODULE_ID } from './tokens';\nimport { ViewUtil } from './view-util';\nimport { DetachedLoader } from './cdk/detached-loader';\nimport { NativeScriptCommonModule } from './nativescript-common.module';\n\nexport function generateFallbackRootView(parentRootView?: View) {\n if (parentRootView) {\n return parentRootView;\n }\n return new AppHostView(new Color('white'));\n}\n\nexport function errorHandler() {\n return new ErrorHandler();\n}\nexport function generateRandomId() {\n return `${Date.now()}` + '_' + Math.random().toString(36).substr(2, 9);\n}\n\nexport const NATIVESCRIPT_MODULE_STATIC_PROVIDERS: StaticProvider[] = [\n { provide: APP_ROOT_VIEW, useFactory: generateFallbackRootView, deps: [[new Optional(), new SkipSelf(), APP_ROOT_VIEW]] },\n { provide: INJECTOR_SCOPE, useValue: 'root' },\n { provide: ErrorHandler, useFactory: errorHandler, deps: [] },\n { provide: ViewUtil, useClass: ViewUtil, deps: [NAMESPACE_FILTERS, [new Optional(), ENABLE_REUSABE_VIEWS]] },\n {\n provide: NativeScriptRendererFactory,\n useClass: NativeScriptRendererFactory,\n deps: [APP_ROOT_VIEW, NAMESPACE_FILTERS, NATIVESCRIPT_ROOT_MODULE_ID, [new Optional(), ENABLE_REUSABE_VIEWS]],\n },\n { provide: NATIVESCRIPT_ROOT_MODULE_ID, useFactory: generateRandomId },\n { provide: RendererFactory2, useExisting: NativeScriptRendererFactory },\n { provide: NAMESPACE_FILTERS, useClass: PlatformNamespaceFilter, deps: [DEVICE], multi: true },\n { provide: DEVICE, useValue: Device },\n { provide: XhrFactory, useClass: NativescriptXhrFactory, deps: [] },\n];\nexport const NATIVESCRIPT_MODULE_PROVIDERS: Provider[] = [{ provide: ViewportScroller, useClass: NullViewportScroller }];\n\n@NgModule({\n imports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule],\n providers: [...NATIVESCRIPT_MODULE_STATIC_PROVIDERS, ...NATIVESCRIPT_MODULE_PROVIDERS],\n exports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class NativeScriptModule {\n constructor(@Optional() @SkipSelf() @Inject(NativeScriptModule) parentModule: NativeScriptModule | null) {\n if (parentModule) {\n 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.`);\n }\n }\n}\n","import {\n Type,\n Injector,\n CompilerOptions,\n PlatformRef,\n NgModuleFactory,\n NgModuleRef,\n EventEmitter,\n Sanitizer,\n InjectionToken,\n StaticProvider,\n createPlatformFactory,\n platformCore,\n PLATFORM_ID,\n ɵinternalCreateApplication,\n ApplicationConfig,\n} from '@angular/core';\nimport { DOCUMENT, LocationChangeListener, LocationStrategy, PlatformLocation } from '@angular/common';\nimport { NativeScriptPlatformRefProxy } from './platform-ref';\nimport { AppHostView } from './app-host-view';\nimport { Color, GridLayout } from '@nativescript/core';\nimport { defaultPageFactory, PAGE_FACTORY } from './tokens';\nimport { AppLaunchView } from './application';\nimport { NATIVESCRIPT_MODULE_PROVIDERS, NATIVESCRIPT_MODULE_STATIC_PROVIDERS } from './nativescript';\n\nexport const defaultPageFactoryProvider = { provide: PAGE_FACTORY, useValue: defaultPageFactory };\nexport class NativeScriptSanitizer extends Sanitizer {\n sanitize(_context: any, value: string): string {\n return value;\n }\n}\n// TODO: when angular finally exports their scheduler token for ivy CD, provide our own with queueMacroTask\n// export function schedulerFactory() {\n// return (fn: any) => {\n// console.log('SCHEDULER');\n// setTimeout(fn, 0);\n// };\n// }\n\nexport class NativeScriptDocument {\n // Required by the AnimationDriver\n public body: any = {\n isOverride: true,\n };\n\n createElement(tag: string) {\n throw new Error('NativeScriptDocument is not DOM Document. There is no createElement() method.');\n }\n}\n\nexport class DummyLocationStrategy extends LocationStrategy {\n path(includeHash?: boolean): string {\n throw new Error('Method not implemented.');\n }\n prepareExternalUrl(internal: string): string {\n throw new Error('Method not implemented.');\n }\n getState(): unknown {\n throw new Error('Method not implemented.');\n }\n pushState(state: any, title: string, url: string, queryParams: string): void {\n throw new Error('Method not implemented.');\n }\n replaceState(state: any, title: string, url: string, queryParams: string): void {\n throw new Error('Method not implemented.');\n }\n forward(): void {\n throw new Error('Method not implemented.');\n }\n back(): void {\n throw new Error('Method not implemented.');\n }\n onPopState(fn: LocationChangeListener): void {\n throw new Error('Method not implemented.');\n }\n getBaseHref(): string {\n throw new Error('Method not implemented.');\n }\n}\nexport class DummyPlatformLocation extends PlatformLocation {\n getBaseHrefFromDOM(): string {\n throw new Error('Method not implemented.');\n }\n getState(): unknown {\n throw new Error('Method not implemented.');\n }\n onPopState(fn: LocationChangeListener): VoidFunction {\n throw new Error('Method not implemented.');\n }\n onHashChange(fn: LocationChangeListener): VoidFunction {\n throw new Error('Method not implemented.');\n }\n get href(): string {\n throw new Error('Method not implemented.');\n }\n get protocol(): string {\n throw new Error('Method not implemented.');\n }\n get hostname(): string {\n throw new Error('Method not implemented.');\n }\n get port(): string {\n throw new Error('Method not implemented.');\n }\n get pathname(): string {\n throw new Error('Method not implemented.');\n }\n get search(): string {\n throw new Error('Method not implemented.');\n }\n get hash(): string {\n throw new Error('Method not implemented.');\n }\n replaceState(state: any, title: string, url: string): void {\n throw new Error('Method not implemented.');\n }\n pushState(state: any, title: string, url: string): void {\n throw new Error('Method not implemented.');\n }\n forward(): void {\n throw new Error('Method not implemented.');\n }\n back(): void {\n throw new Error('Method not implemented.');\n }\n}\n\nexport const COMMON_PROVIDERS: StaticProvider[] = [\n defaultPageFactoryProvider,\n { provide: Sanitizer, useClass: NativeScriptSanitizer, deps: [] },\n { provide: DOCUMENT, useClass: NativeScriptDocument, deps: [] },\n { provide: PLATFORM_ID, useValue: 'browser' },\n {\n provide: LocationStrategy,\n useClass: DummyLocationStrategy,\n deps: [],\n },\n { provide: PlatformLocation, useClass: DummyPlatformLocation, deps: [] },\n];\n\nexport const platformNativeScript = createPlatformFactory(platformCore, 'nativescriptDynamic', COMMON_PROVIDERS);\nfunction createProvidersConfig(options?: ApplicationConfig) {\n return {\n appProviders: [\n ...NATIVESCRIPT_MODULE_STATIC_PROVIDERS,\n ...NATIVESCRIPT_MODULE_PROVIDERS,\n ...(options?.providers ?? []),\n ],\n platformProviders: COMMON_PROVIDERS,\n };\n}\n\nexport function bootstrapApplication(rootComponent: Type<any>, options?: ApplicationConfig) {\n return ɵinternalCreateApplication({\n rootComponent: rootComponent,\n ...createProvidersConfig(options),\n });\n}\n\nexport function createApplication(options?: ApplicationConfig) {\n return ɵinternalCreateApplication(createProvidersConfig(options));\n}\n\nexport interface HmrOptions {\n /**\n * A factory function that returns either Module type or NgModuleFactory type.\n * This needs to be a factory function as the types will change when modules are replaced.\n */\n moduleTypeFactory?: () => Type<any> | NgModuleFactory<any>;\n\n /**\n * A livesync callback that will be called instead of the original livesync.\n * It gives the HMR a hook to apply the module replacement.\n * @param bootstrapPlatform - A bootstrap callback to be called after HMR is done. It will bootstrap a new angular app within the exisiting platform, using the moduleTypeFactory to get the Module or NgModuleFactory to be used.\n */\n livesyncCallback: (bootstrapPlatform: () => void) => void;\n}\n\nexport interface AppOptions {\n cssFile?: string;\n startPageActionBarHidden?: boolean;\n hmrOptions?: HmrOptions;\n /**\n * Background color of the root view\n */\n backgroundColor?: string;\n /**\n * Use animated launch view (async by default)\n */\n launchView?: AppLaunchView;\n /**\n * When using Async APP_INITIALIZER, set this to `true`.\n * (Not needed when using launchView)\n */\n async?: boolean;\n}\n\n/**\n * @deprecated use runNativeScriptAngularApp instead\n */\nexport const platformNativeScriptDynamic = function (options?: AppOptions, extraProviders?: StaticProvider[]) {\n console.log('platformNativeScriptDynamic is deprecated, use runNativeScriptAngularApp instead');\n options = options || {};\n extraProviders = extraProviders || [];\n\n const ngRootView = new AppHostView(new Color(options.backgroundColor || 'white'));\n let launchView = options.launchView;\n if (!launchView && options.async) {\n launchView = new GridLayout();\n launchView.backgroundColor = options.backgroundColor || 'white';\n }\n return new NativeScriptPlatformRefProxy(platformNativeScript([...extraProviders]), launchView);\n};\n","import { NgModule } from '@angular/core';\nimport { Application, ContentView, RootLayout, View } from '@nativescript/core';\nimport { APP_ROOT_VIEW, DISABLE_ROOT_VIEW_HANDLING } from './tokens';\n\nexport class RootViewProxy extends ContentView {\n constructor(private parentRootLayout: RootLayout) {\n super();\n }\n\n _addView(view: View, atIndex?: number) {\n super._addView(view, atIndex);\n if (this.parentRootLayout.getChildIndex(this) < 0) {\n this.parentRootLayout.insertChild(this, 0);\n }\n }\n\n _removeView(view: View) {\n super._removeView(view);\n this.parentRootLayout.removeChild(this);\n }\n}\n\n/**\n * This generates a RootLayout and returns a RootViewProxy.\n * Setting RootViewProxy.content will add the view to the bottom of the RootLayout\n * Setting RootViewProxy.content = null will remove the view from the RootLayout\n * @returns RootViewProxy that will insert content into the start of the RootLayout\n */\nexport function generateRootLayoutAndProxy() {\n let rootView = Application.getRootView();\n if (!rootView || !(rootView instanceof RootLayout)) {\n rootView = new RootLayout();\n Application.resetRootView({ create: () => rootView });\n }\n const viewProxy = new RootViewProxy(rootView as RootLayout);\n // (rootView as RootLayout).insertChild(viewProxy, 0);\n return viewProxy;\n}\n\n@NgModule({\n providers: [\n { provide: DISABLE_ROOT_VIEW_HANDLING, useValue: true },\n { provide: APP_ROOT_VIEW, useFactory: generateRootLayoutAndProxy },\n ],\n})\nexport class RootCompositeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { ShowModalOptions, View } from '@nativescript/core';\n\nexport type NativeShowModalOptions = Partial<Omit<ShowModalOptions, 'cancelable' | 'closeCallback'>>;\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nexport class NativeDialogConfig<D = any> {\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** Where to render the actual dialog in. By default it renders using the native view of the ViewContainerRef */\n renderIn?: 'root' | 'viewContainerRef' | View = 'viewContainerRef';\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Whether the user can use escape or clicking on the backdrop to close the modal. */\n disableClose?: boolean = false;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n closeOnNavigation?: boolean = true;\n\n /** Alternate `ComponentFactoryResolver` to use when resolving the associated component. */\n componentFactoryResolver?: ComponentFactoryResolver;\n\n nativeOptions?: NativeShowModalOptions = {};\n\n // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n}\n","import { Observable, Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { NativeModalRef } from './native-modal-ref';\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n/** Possible states of the lifecycle of a dialog. */\nexport const enum NativeDialogState {\n OPEN,\n CLOSING,\n CLOSED,\n}\n\nexport class NativeDialogRef<T, R = any> {\n /** The instance of component opened into the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined; //= this._containerInstance._config.disableClose;\n\n /** Subject for notifying the user that the dialog has finished opening. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private readonly _afterClosed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the dialog has started closing. */\n private readonly _beforeClosed = new Subject<R | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n /** Current state of the dialog. */\n private _state = NativeDialogState.OPEN;\n\n constructor(private _nativeModalRef: NativeModalRef, readonly id: string = `native-dialog-${uniqueId++}`) {\n // Pass the id along to the container.\n _nativeModalRef._id = id;\n\n // Emit when opening animation completes\n _nativeModalRef.stateChanged\n .pipe(\n filter((event) => event.state === 'opened'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n _nativeModalRef.stateChanged\n .pipe(\n filter((event) => event.state === 'closed'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this._closeFallbackTimeout);\n this._finishDialogClose();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n });\n\n _nativeModalRef.onDismiss.subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.componentInstance = null!;\n _nativeModalRef.dispose();\n });\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult;\n\n // Transition the backdrop in parallel to the dialog.\n this._nativeModalRef.stateChanged\n .pipe(\n filter((event) => event.state === 'closing'),\n take(1)\n )\n .subscribe(() => {\n this._beforeClosed.next(dialogResult);\n this._beforeClosed.complete();\n this._nativeModalRef.dispose();\n // this._overlayRef.detachBackdrop();\n\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has the chance to fire.\n this._closeFallbackTimeout = setTimeout(\n () => {\n this._finishDialogClose();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n },\n //event.totalTime + 100);\n 100\n );\n });\n\n this._state = NativeDialogState.CLOSING;\n this._nativeModalRef._startExitAnimation();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<R | undefined> {\n return this._afterClosed;\n }\n\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClosed(): Observable<R | undefined> {\n return this._beforeClosed;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n throw new Error('Method not implemented');\n }\n\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes: string | string[]): this {\n // this._overlayRef.addPanelClass(classes);\n return this;\n }\n\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes: string | string[]): this {\n // this._overlayRef.removePanelClass(classes);\n return this;\n }\n\n /** Gets the current state of the dialog's lifecycle. */\n getState(): NativeDialogState {\n return this._state;\n }\n\n /**\n * Finishes the dialog close by updating the state of the dialog\n * and disposing the overlay.\n */\n private _finishDialogClose() {\n this._state = NativeDialogState.CLOSED;\n this._nativeModalRef.dispose();\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n Injector,\n Optional,\n ViewContainerRef,\n} from '@angular/core';\nimport { Application, ContentView, Frame, View } from '@nativescript/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { AppHostAsyncView, AppHostView } from '../../app-host-view';\nimport { NSLocationStrategy } from '../../legacy/router/ns-location-strategy';\nimport { once } from '../../utils/general';\nimport { NgViewRef } from '../../view-refs';\nimport { DetachedLoader } from '../detached-loader';\nimport { ComponentPortal, TemplatePortal } from '../portal/common';\nimport { NativeScriptDomPortalOutlet } from '../portal/nsdom-portal-outlet';\nimport { NativeDialogConfig } from './dialog-config';\n\nexport class NativeModalRef {\n _id: string;\n stateChanged = new Subject<{ state: 'opened' | 'closed' | 'closing' }>();\n onDismiss = new Subject<void>();\n\n parentView: View;\n portalOutlet: NativeScriptDomPortalOutlet;\n detachedLoaderRef: ComponentRef<DetachedLoader>;\n modalViewRef: NgViewRef<any>;\n\n private _closeCallback: () => void;\n private _isDismissed = false;\n\n constructor(\n private _config: NativeDialogConfig,\n private _injector: Injector,\n @Optional() private location?: NSLocationStrategy,\n ) {\n const nativeElement =\n this._config.renderIn === 'root'\n ? Application.getRootView()\n : this._config.renderIn === 'viewContainerRef'\n ? this._config.viewContainerRef?.element.nativeElement\n : this._config.renderIn;\n let parentView = nativeElement || Application.getRootView();\n\n if ((parentView instanceof AppHostView || parentView instanceof AppHostAsyncView) && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future modal views.\n while (parentView._modal || parentView._ngDialogRoot) {\n parentView = parentView._modal || parentView._ngDialogRoot;\n }\n this.parentView = parentView;\n\n this._closeCallback = once(async () => {\n this.stateChanged.next({ state: 'closing' });\n if (!this._isDismissed) {\n this.modalViewRef.firstNativeLikeView?.closeModal();\n }\n await this.location?._closeModalNavigation();\n // this.detachedLoaderRef?.destroy();\n if (this.modalViewRef?.firstNativeLikeView.isLoaded) {\n fromEvent(this.modalViewRef.firstNativeLikeView, 'unloaded')\n .pipe(take(1))\n .subscribe(() => this.stateChanged.next({ state: 'closed' }));\n } else {\n this.stateChanged.next({ state: 'closed' });\n }\n });\n }\n\n _generateDetachedContainer(vcRef?: ViewContainerRef) {\n if (vcRef) {\n this.detachedLoaderRef = vcRef.createComponent(DetachedLoader);\n } else {\n this.detachedLoaderRef = createComponent(DetachedLoader, {\n environmentInjector: this._injector.get(ApplicationRef).injector,\n elementInjector: this._config.viewContainerRef?.injector || this._injector,\n });\n this._injector.get(ApplicationRef).attachView(this.detachedLoaderRef.hostView);\n }\n this.detachedLoaderRef.changeDetectorRef.detectChanges();\n }\n\n attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T> {\n this.startModalNavigation();\n const vcRef = portal.viewContainerRef || this._config.viewContainerRef;\n this._generateDetachedContainer(vcRef);\n portal.viewContainerRef = this.detachedLoaderRef.instance.vc;\n const targetView = new ContentView();\n this.portalOutlet = new NativeScriptDomPortalOutlet(\n targetView,\n this._config.componentFactoryResolver || this._injector.get(ComponentFactoryResolver),\n this._injector.get(ApplicationRef),\n this._injector,\n );\n const templateRef = this.portalOutlet.attach(portal);\n this.modalViewRef = new NgViewRef(templateRef);\n this.modalViewRef.firstNativeLikeView['__ng_modal_id__'] = this._id;\n // if we don't detach the view from its parent, ios gets mad\n this.modalViewRef.detachNativeLikeView();\n\n const userOptions = this._config.nativeOptions || {};\n this.parentView.showModal(this.modalViewRef.firstNativeLikeView, {\n context: null,\n ...userOptions,\n closeCallback: async () => {\n await this.location?._closeModalNavigation();\n this.onDismiss.next();\n this.onDismiss.complete();\n },\n cancelable: !this._config.disableClose,\n });\n // if (this.modalView !== templateRef.rootNodes[0]) {\n // componentRef.location.nativeElement._ngDialogRoot = this.modalView;\n // }\n return templateRef;\n }\n\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.startModalNavigation();\n\n const targetView = new ContentView();\n this.portalOutlet = new NativeScriptDomPortalOutlet(\n targetView,\n this._config.componentFactoryResolver || this._injector.get(ComponentFactoryResolver),\n this._injector.get(ApplicationRef),\n this._injector,\n );\n const componentRef = this.portalOutlet.attach(portal);\n componentRef.changeDetectorRef.detectChanges();\n this.modalViewRef = new NgViewRef(componentRef);\n if (this.modalViewRef.firstNativeLikeView !== this.modalViewRef.view) {\n (<any>this.modalViewRef.view)._ngDialogRoot = this.modalViewRef.firstNativeLikeView;\n }\n this.modalViewRef.firstNativeLikeView['__ng_modal_id__'] = this._id;\n // if we don't detach the view from its parent, ios gets mad\n this.modalViewRef.detachNativeLikeView();\n\n const userOptions = this._config.nativeOptions || {};\n this.parentView.showModal(this.modalViewRef.firstNativeLikeView, {\n context: null,\n ...userOptions,\n closeCallback: async () => {\n this._isDismissed = true;\n this._closeCallback(); // close callback can only be called once, so we call it here to setup the exit events\n this.onDismiss.next();\n this.onDismiss.complete();\n },\n cancelable: !this._config.disableClose,\n });\n return componentRef;\n }\n\n _startExitAnimation() {\n this._closeCallback();\n }\n\n dispose() {\n this.portalOutlet.dispose();\n }\n private startModalNavigation() {\n const frame = this.parentView instanceof Frame ? this.parentView : this.parentView?.page?.frame || Frame.topmost();\n\n this.location?._beginModalNavigation(frame);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n StaticProvider,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { defer, Observable, Subject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { NSLocationStrategy } from '../../legacy/router/ns-location-strategy';\nimport { ComponentType } from '../../utils/general';\nimport { ComponentPortal, TemplatePortal } from '../portal/common';\nimport { NativeDialogConfig } from './dialog-config';\nimport { NativeDialogRef } from './dialog-ref';\nimport { NativeModalRef } from './native-modal-ref';\n\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nexport const NATIVE_DIALOG_DATA = new InjectionToken<any>('NativeDialogData');\n\n/** Injection token that can be used to specify default dialog options. */\nexport const NATIVE_DIALOG_DEFAULT_OPTIONS = new InjectionToken<NativeDialogConfig>('native-dialog-default-options');\n\n/**\n * Base class for dialog services. The base dialog service allows\n * for arbitrary dialog refs and dialog container components.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeDialog implements OnDestroy {\n private _openDialogsAtThisLevel: NativeDialogRef<any>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<NativeDialogRef<any>>();\n // TODO (jelbourn): tighten the typing right-hand side of this expression.\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n readonly afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length\n ? this._getAfterAllClosed()\n : this._getAfterAllClosed().pipe(startWith<any, any>(undefined)),\n ) as Observable<any>;\n\n /** Keeps track of the currently-open dialogs. */\n get openDialogs(): NativeDialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n\n /** Stream that emits when a dialog has been opened. */\n get afterOpened(): Subject<NativeDialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpenedAtThisLevel;\n }\n\n _getAfterAllClosed(): Subject<void> {\n const parent = this._parentDialog;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n private _injector = inject(Injector);\n private _defaultOptions = inject(NATIVE_DIALOG_DEFAULT_OPTIONS, {\n optional: true,\n });\n private _parentDialog = inject(NativeDialog, { optional: true, skipSelf: true });\n private _dialogRefConstructor: Type<NativeDialogRef<any>> = NativeDialogRef;\n private _nativeModalType = NativeModalRef;\n private _dialogDataToken = NATIVE_DIALOG_DATA;\n private locationStrategy = inject(NSLocationStrategy);\n /**\n * Opens a modal dialog containing the given component.\n * @param component Type of the component to load into the dialog.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<T, D = any, R = any>(component: ComponentType<T>, config?: NativeDialogConfig<D>): NativeDialogRef<T, R>;\n\n /**\n * Opens a modal dialog containing the given template.\n * @param template TemplateRef to instantiate as the dialog content.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<T, D = any, R = any>(template: TemplateRef<T>, config?: NativeDialogConfig<D>): NativeDialogRef<T, R>;\n\n open<T, D = any, R = any>(\n template: ComponentType<T> | TemplateRef<T>,\n config?: NativeDialogConfig<D>,\n ): NativeDialogRef<T, R>;\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: NativeDialogConfig<D>,\n ): NativeDialogRef<T, R> {\n config = _applyConfigDefaults(config, this._defaultOptions || new NativeDialogConfig());\n\n if (config.id && this.getDialogById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n const dialogRef = this._attachDialogContent<T, R>(componentOrTemplateRef, config);\n\n this.openDialogs.push(dialogRef);\n dialogRef.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpened.next(dialogRef);\n\n // Notify the dialog container that the content has been attached.\n // dialogContainer._initializeWithAttachedContent();\n\n return dialogRef;\n }\n\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll(): void {\n this._closeDialogs(this.openDialogs);\n }\n\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id: string): NativeDialogRef<any> | undefined {\n return this.openDialogs.find((dialog) => dialog.id === id);\n }\n\n ngOnDestroy() {\n // Only close the dialogs at this level on destroy\n // since the parent service may still be active.\n this._closeDialogs(this._openDialogsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n }\n\n /**\n * Attaches the user-provided component to the already-created dialog container.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping dialog container.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n private _attachDialogContent<T, R>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: NativeDialogConfig,\n ): NativeDialogRef<T, R> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const nativeModalRef = new this._nativeModalType(config, this._injector, this.locationStrategy);\n const dialogRef = new this._dialogRefConstructor(nativeModalRef, config.id);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n // const detachedFactory = options.resolver.resolveComponentFactory(DetachedLoader);\n // if(options.attachToContainerRef) {\n // detachedLoaderRef = options.attachToContainerRef.createComponent(detachedFactory, 0, childInjector, null);\n // } else {\n // detachedLoaderRef = detachedFactory.create(childInjector); // this DetachedLoader is **completely** detached\n // this.appRef.attachView(detachedLoaderRef.hostView); // we attach it to the applicationRef, so it becomes a \"root\" view in angular's hierarchy\n // }\n // detachedLoaderRef.changeDetectorRef.detectChanges(); // force a change detection\n // detachedLoaderRef.instance.createTemplatePortal(options.templateRef);\n nativeModalRef.attachTemplatePortal(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{ $implicit: config.data, dialogRef }),\n );\n } else {\n const injector = this._createInjector<T>(config, dialogRef);\n const contentRef = nativeModalRef.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n }\n\n return dialogRef;\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param dialogContainer Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(config: NativeDialogConfig, dialogRef: NativeDialogRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n // The dialog container should be provided as the dialog container and the dialog's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the dialog\n // container is explicitly provided in the injector.\n const providers: StaticProvider[] = [\n { provide: this._dialogDataToken, useValue: config.data },\n { provide: this._dialogRefConstructor, useValue: dialogRef },\n ];\n\n return Injector.create({ parent: userInjector || this._injector, providers });\n }\n\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n */\n private _removeOpenDialog(dialogRef: NativeDialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this._getAfterAllClosed().next();\n }\n }\n }\n\n /** Closes all of the dialogs in an array. */\n private _closeDialogs(dialogs: NativeDialogRef<any>[]) {\n let i = dialogs.length;\n\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n dialogs[i].close();\n }\n }\n}\n\n/**\n * Applies default options to the dialog config.\n * @param config Config to be modified.\n * @param defaultOptions Default options provided.\n * @returns The new configuration object.\n */\nfunction _applyConfigDefaults(config?: NativeDialogConfig, defaultOptions?: NativeDialogConfig): NativeDialogConfig {\n return { ...defaultOptions, ...config };\n}\n\nexport {\n /**\n * @deprecated Use `NativeDialog` instead.\n */\n NativeDialog as NativeDialogService,\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Directive, ElementRef, HostListener, inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { View, ViewBase } from '@nativescript/core';\nimport { NativeDialogRef } from './dialog-ref';\nimport { NativeDialog } from './dialog-services';\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[native-dialog-close], [nativeDialogClose]',\n exportAs: 'nativeDialogClose',\n standalone: true,\n})\nexport class NativeDialogCloseDirective implements OnInit, OnChanges {\n /** Dialog close input. */\n @Input('native-dialog-close') dialogResult: any;\n\n @Input('nativeDialogClose') _matDialogClose: any;\n dialogRef = inject(NativeDialogRef<any>, { optional: true });\n _elementRef = inject(ElementRef<View>);\n _dialog = inject(NativeDialog);\n\n ngOnInit() {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs)!;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes['_matDialogClose'] || changes['_matDialogCloseResult'];\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n\n @HostListener('tap')\n _onButtonClick() {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n this.dialogRef.close(this.dialogResult);\n }\n}\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(element: ElementRef<View>, openDialogs: NativeDialogRef<any>[]) {\n let view: ViewBase | null = element.nativeElement.parent;\n\n while (view && !Object.hasOwnProperty.call(view, '__ng_modal_id__')) {\n view = view.parent;\n }\n\n return view ? openDialogs.find((dialog) => dialog.id === view['__ng_modal_id__']) : null;\n}\n","import { NgModule } from '@angular/core';\nimport { NativeDialogCloseDirective } from './dialog-content-directives';\nimport { NativeDialog } from './dialog-services';\n\n@NgModule({\n imports: [NativeDialogCloseDirective],\n exports: [NativeDialogCloseDirective],\n providers: [NativeDialog],\n})\nexport class NativeDialogModule {}\n","import { Injectable } from '@angular/core';\nimport { knownFolders, Folder, File } from '@nativescript/core';\n\n// Allows greater flexibility with `file-system` and Angular\n// Also provides a way for `file-system` to be mocked for testing\n\n@Injectable()\nexport class NSFileSystem {\n public currentApp(): Folder {\n return knownFolders.currentApp();\n }\n\n public fileFromPath(path: string): File {\n return File.fromPath(path);\n }\n\n public fileExists(path: string): boolean {\n return File.exists(path);\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injector, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { ContentView } from '@nativescript/core';\nimport { DetachedLoader } from './cdk/detached-loader';\nimport { ComponentPortal, NativeScriptDomPortalOutlet, TemplatePortal } from './cdk/portal';\nimport { NgViewRef } from './view-refs';\n\n/**\n * creates a DetachedLoader either linked to the ViewContainerRef or the ApplicationRef if ViewContainerRef is not defined\n * @param resolver component factory resolver\n * @param injector default injector, unused if viewContainerRef is set\n * @param viewContainerRef where the view should live in the angular tree\n * @returns reference to the DetachedLoader\n */\nexport function generateDetachedLoader(resolver: ComponentFactoryResolver, injector: Injector, viewContainerRef?: ViewContainerRef) {\n injector = viewContainerRef?.injector || injector;\n const detachedFactory = resolver.resolveComponentFactory(DetachedLoader);\n const detachedLoaderRef = viewContainerRef?.createComponent(detachedFactory) || detachedFactory.create(injector);\n if (!viewContainerRef) {\n injector.get(ApplicationRef).attachView(detachedLoaderRef.hostView);\n }\n detachedLoaderRef.changeDetectorRef.detectChanges();\n return detachedLoaderRef;\n}\n\n/**\n * Generates a NgViewRef from a component or template. @see NgViewRef\n * Pass keepNativeViewAttached as `true` if you don't want the first native view to be detached from its parent.\n * For opening modals and others, the firstNativeLikeView should be detached.\n * @param typeOrTemplate ComponentType or TemplateRef that should be instanced\n * @param options options for creating the view\n * @returns NgViewRef\n */\nexport function generateNativeScriptView<T>(\n typeOrTemplate: Type<T> | TemplateRef<T>,\n options: {\n resolver?: ComponentFactoryResolver;\n viewContainerRef?: ViewContainerRef;\n injector: Injector;\n keepNativeViewAttached?: boolean;\n /**\n * reuse a detachedLoaderRef. This will override viewContainerRef\n */\n detachedLoaderRef?: ComponentRef<DetachedLoader>;\n }\n) {\n let detachedLoaderRef: ComponentRef<DetachedLoader> = options.detachedLoaderRef;\n const reusingDetachedLoader = !!detachedLoaderRef;\n if (reusingDetachedLoader) {\n options.viewContainerRef = detachedLoaderRef.instance.vc;\n }\n const injector = options.viewContainerRef?.injector || options.injector;\n const resolver = options.resolver || injector.get(ComponentFactoryResolver);\n if (!detachedLoaderRef && (options.viewContainerRef || typeOrTemplate instanceof TemplateRef)) {\n detachedLoaderRef = generateDetachedLoader(resolver, injector, options.viewContainerRef);\n }\n let portal: ComponentPortal<T> | TemplatePortal<T>;\n if (typeOrTemplate instanceof TemplateRef) {\n portal = new TemplatePortal(typeOrTemplate, detachedLoaderRef.instance.vc);\n } else {\n portal = new ComponentPortal(typeOrTemplate, detachedLoaderRef?.instance.vc);\n }\n const parentView = new ContentView();\n const portalOutlet = new NativeScriptDomPortalOutlet(parentView, resolver, injector.get(ApplicationRef), injector);\n const componentOrTemplateRef: ComponentRef<T> | EmbeddedViewRef<T> = portalOutlet.attach(portal);\n componentOrTemplateRef.onDestroy(() => {\n portalOutlet.dispose();\n });\n if (detachedLoaderRef && !reusingDetachedLoader) {\n componentOrTemplateRef.onDestroy(() => {\n detachedLoaderRef.destroy();\n });\n }\n const viewRef = new NgViewRef(componentOrTemplateRef);\n (viewRef as any).detachedLoaderRef = detachedLoaderRef;\n if (!options.keepNativeViewAttached) {\n viewRef.detachNativeLikeView();\n }\n return viewRef;\n}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { View, unsetValue } from '@nativescript/core';\n\nimport { isBlank } from '../../utils/lang-facade';\n\nexport class BaseValueAccessor<TView extends View> implements ControlValueAccessor {\n private pendingChangeNotification: any = 0;\n onChange: (change: any) => void = () => {\n //\n };\n onTouched = () => {\n //\n };\n\n constructor(public view: TView) {}\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (arg) => {\n if (this.pendingChangeNotification) {\n clearTimeout(this.pendingChangeNotification);\n }\n this.pendingChangeNotification = setTimeout(() => {\n this.pendingChangeNotification = 0;\n fn(arg);\n }, 20);\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.view.isEnabled = !isDisabled;\n }\n\n writeValue(_: any) {\n //\n }\n\n protected normalizeValue(value: any): any {\n return isBlank(value) ? unsetValue : value;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { View } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst TEXT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextValueAccessor),\n multi: true,\n};\n\nexport type TextView = { text: string } & View;\n\n/**\n * The accessor for writing a text and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <TextField [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector:\n 'TextField[ngModel],TextField[formControlName],TextField[formControl],' +\n 'textField[ngModel],textField[formControlName],textField[formControl],' +\n 'textfield[ngModel],textfield[formControlName],textfield[formControl],' +\n 'text-field[ngModel],text-field[formControlName],text-field[formControl],' +\n 'TextView[ngModel],TextView[formControlName],TextView[formControl],' +\n 'textView[ngModel],textView[formControlName],textView[formControl],' +\n 'textview[ngModel],textview[formControlName],textview[formControl],' +\n 'text-view[ngModel],text-view[formControlName],text-view[formControl],' +\n 'SearchBar[ngModel],SearchBar[formControlName],SearchBar[formControl],' +\n 'searchBar[ngModel],searchBar[formControlName],searchBar[formControl],' +\n 'searchbar[ngModel],searchbar[formControlName],searchbar[formControl],' +\n 'search-bar[ngModel], search-bar[formControlName],search-bar[formControl]',\n providers: [TEXT_VALUE_ACCESSOR],\n host: {\n '(blur)': 'onTouched()',\n '(textChange)': 'onChange($event.value)',\n },\n})\nexport class TextValueAccessor extends BaseValueAccessor<TextView> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value ? `${value}` : value);\n this.view.text = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Switch } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst CHECKED_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckedValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a checked property and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <Switch [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector: 'Switch[ngModel],Switch[formControlName],Switch[formControl],' + 'switch[ngModel],switch[formControlName],switch[formControl]',\n providers: [CHECKED_VALUE_ACCESSOR],\n host: {\n '(checkedChange)': 'onChange($event.value)',\n },\n})\nexport class CheckedValueAccessor extends BaseValueAccessor<Switch> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.checked = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePicker } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a date and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <DatePicker [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n 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]',\n providers: [DATE_VALUE_ACCESSOR],\n host: {\n '(dateChange)': 'onChange($event.value)',\n },\n})\nexport class DateValueAccessor extends BaseValueAccessor<DatePicker> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.date = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TimePicker } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst TIME_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a time and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <TimePicker [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n 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]',\n providers: [TIME_VALUE_ACCESSOR],\n host: {\n '(timeChange)': 'onChange($event.value)',\n },\n})\nexport class TimeValueAccessor extends BaseValueAccessor<TimePicker> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.time = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Slider } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst NUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a value and listening to changes that is used by the\n * {@link NgModel}\n *\n * ### Example\n * ```\n * <Slider [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector: 'Slider[ngModel],Slider[formControlName],Slider[formControl],' + 'slider[ngModel],slider[formControlName],slider[formControl]',\n providers: [NUMBER_VALUE_ACCESSOR],\n host: {\n '(valueChange)': 'onChange($event.value)',\n },\n})\nexport class NumberValueAccessor extends BaseValueAccessor<Slider> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.value = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef, AfterViewInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { View } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst SELECTED_INDEX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectedIndexValueAccessor),\n multi: true,\n};\n\nexport type SelectableView = { selectedIndex: number } & View;\n\n/**\n * The accessor for setting a selectedIndex and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <SegmentedBar [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector:\n 'SegmentedBar[ngModel],SegmentedBar[formControlName],SegmentedBar[formControl],' +\n 'segmentedBar[ngModel],segmentedBar[formControlName],segmentedBar[formControl],' +\n 'segmentedbar[ngModel],segmentedbar[formControlName],segmentedbar[formControl],' +\n 'segmented-bar[ngModel],segmented-bar[formControlName],segmented-bar[formControl],' +\n 'ListPicker[ngModel],ListPicker[formControlName],ListPicker[formControl],' +\n 'listPicker[ngModel],listPicker[formControlName],listPicker[formControl],' +\n 'listpicker[ngModel],listpicker[formControlName],listpicker[formControl],' +\n 'list-picker[ngModel],list-picker[formControlName],list-picker[formControl],' +\n 'TabView[ngModel],TabView[formControlName],TabView[formControl],' +\n 'tabView[ngModel],tabView[formControlName],tabView[formControl],' +\n 'tabview[ngModel],tabview[formControlName],tabview[formControl],' +\n 'tab-view[ngModel],tab-view[formControlName],tab-view[formControl]',\n providers: [SELECTED_INDEX_VALUE_ACCESSOR],\n host: {\n '(selectedIndexChange)': 'onChange($event.value)',\n },\n})\nexport class SelectedIndexValueAccessor extends BaseValueAccessor<SelectableView> implements AfterViewInit {\n // tslint:disable-line:max-line-length directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n private value: number;\n private viewInitialized: boolean;\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.value = normalized;\n\n if (this.viewInitialized) {\n this.view.selectedIndex = this.value;\n }\n }\n\n ngAfterViewInit() {\n this.viewInitialized = true;\n this.view.selectedIndex = this.value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, NumberValueAccessor, SelectedIndexValueAccessor } from './value-accessors';\n\nexport * from './value-accessors';\n\n@NgModule({\n providers: [],\n imports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor],\n exports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor],\n})\nexport class NativeScriptFormsModule {}\n","import { KeyframeAnimation, KeyframeAnimationInfo, KeyframeDeclaration, KeyframeInfo, parseKeyframeDeclarations, animationTimingFunctionConverter } from '@nativescript/core';\n\nexport type Keyframe = Map<string, string | number> & { offset: number };\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function createKeyframeAnimation(styles: Keyframe[], duration: number, delay: number, easing: string): KeyframeAnimation {\n const info = createKeyframeAnimationInfo(styles, duration, delay, easing);\n return KeyframeAnimation.keyframeAnimationFromInfo(info);\n}\n\nconst createKeyframeAnimationInfo = (styles: Keyframe[], duration: number, delay: number, easing: string): KeyframeAnimationInfo => ({\n isForwards: true,\n duration: duration || 0.01,\n delay,\n curve: getCurve(easing),\n keyframes: styles.map(parseAnimationKeyframe),\n});\n\nconst getCurve = (value: string) => animationTimingFunctionConverter(value);\n\nconst parseAnimationKeyframe = (styles: Keyframe): KeyframeInfo => ({\n duration: getKeyframeDuration(styles),\n declarations: getDeclarations(styles),\n});\n\nconst getKeyframeDuration = (styles: Keyframe): number => styles.offset;\n\nfunction getDeclarations(styles: Keyframe): KeyframeDeclaration[] {\n const keys = Array.from(styles.keys());\n const unparsedDeclarations: KeyframeDeclaration[] = keys.map((property) => ({ property, value: styles.get(property) }));\n\n return parseKeyframeDeclarations(unparsedDeclarations);\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-function-type */\nimport { AnimationPlayer } from '@angular/animations';\nimport { View, EventData, KeyframeAnimation } from '@nativescript/core';\n\nimport { Keyframe, createKeyframeAnimation } from './utils';\nimport { NgView } from '../views/view-types';\nimport { NativeScriptDebug } from '../trace';\n\nexport class NativeScriptAnimationPlayer implements AnimationPlayer {\n public parentPlayer: AnimationPlayer = null;\n\n private _startSubscriptions: Function[] = [];\n private _doneSubscriptions: Function[] = [];\n private _finished = false;\n private _started = false;\n private animation: KeyframeAnimation;\n\n constructor(\n private target: NgView,\n keyframes: Keyframe[],\n private duration: number,\n private delay: number,\n easing: string,\n ) {\n this.initKeyframeAnimation(keyframes, duration, delay, easing);\n }\n\n get totalTime(): number {\n return this.delay + this.duration;\n }\n\n init(): void {}\n\n hasStarted(): boolean {\n return this._started;\n }\n\n onStart(fn: Function): void {\n this._startSubscriptions.push(fn);\n }\n onDone(fn: Function): void {\n this._doneSubscriptions.push(fn);\n }\n onDestroy(fn: Function): void {\n this._doneSubscriptions.push(fn);\n }\n\n play(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.play`);\n }\n\n if (!this.animation) {\n return;\n }\n\n if (!this._started) {\n this._started = true;\n this._startSubscriptions.forEach((fn) => fn());\n this._startSubscriptions = [];\n }\n\n // When this issue https://github.com/NativeScript/NativeScript/issues/7984 is fixes in @nativescript/core\n // we can change this fix and apply the one that is recommended in that issue.\n if (this.target.isLoaded) {\n this.playAnimation();\n } else {\n this.target.on(View.loadedEvent, this.onTargetLoaded.bind(this));\n }\n }\n\n private onTargetLoaded(args: EventData) {\n this.target.off(View.loadedEvent, this.onTargetLoaded);\n this.playAnimation();\n }\n\n private playAnimation() {\n this.animation\n .play(this.target)\n .then(() => this.onFinish())\n .catch((_e) => {});\n }\n\n pause(): void {}\n\n finish(): void {\n this.onFinish();\n }\n\n reset(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.reset`);\n }\n\n if (this.animation && this.animation.isPlaying) {\n this.animation.cancel();\n }\n }\n\n restart(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.restart`);\n }\n\n this.reset();\n this.play();\n }\n\n destroy(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.destroy`);\n }\n this.onFinish();\n }\n\n setPosition(_p: any): void {\n throw new Error('AnimationPlayer.setPosition method is not supported!');\n }\n\n getPosition(): number {\n return 0;\n }\n\n private initKeyframeAnimation(keyframes: Keyframe[], duration: number, delay: number, easing: string) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.initKeyframeAnimation`);\n }\n\n this.animation = createKeyframeAnimation(keyframes, duration, delay, easing);\n }\n\n private onFinish() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.onFinish`);\n }\n\n if (this._finished) {\n return;\n }\n\n this._finished = true;\n this._started = false;\n this._doneSubscriptions.forEach((fn) => fn());\n this._doneSubscriptions = [];\n }\n}\n","import { AnimationPlayer } from '@angular/animations';\nimport { AnimationDriver } from '@angular/animations/browser';\nimport { ProxyViewContainer, eachDescendant, CssAnimationProperty, CSSHelper } from '@nativescript/core';\n\nimport { NativeScriptAnimationPlayer } from './animation-player';\nimport { Keyframe, dashCaseToCamelCase } from './utils';\nimport { InvisibleNode } from '../views/invisible-nodes';\nimport { NgView } from '../views/view-types';\nimport { NativeScriptDebug } from '../trace';\n\ninterface ViewMatchResult {\n found: boolean;\n}\n\ninterface ViewMatchParams {\n originalView: NgView;\n}\n\ninterface QueryParams {\n selector: Selector;\n multi: boolean;\n}\n\ninterface QueryResult {\n matches: NgView[];\n}\n\nclass Selector {\n private nsSelectors: Array<any>;\n private classSelectors: string[];\n\n constructor(rawSelector: string) {\n this.parse(rawSelector);\n }\n\n match(element: NgView): boolean {\n return this.nsSelectorMatch(element) || this.classSelectorsMatch(element);\n }\n\n private parse(rawSelector: string) {\n const selectors = rawSelector.split(',').map((s) => s.trim());\n\n this.nsSelectors = selectors.map(CSSHelper.createSelector);\n this.classSelectors = selectors.filter((s) => s.startsWith('.')).map((s) => s.substring(1));\n }\n\n private nsSelectorMatch(element: NgView) {\n return this.nsSelectors.some((s) => s.match(element));\n }\n\n private classSelectorsMatch(element: NgView) {\n return this.classSelectors.some((s) => this.hasClass(element, s));\n }\n\n // we're using that instead of match for classes\n // that are dynamically added by the animation engine\n // such as .ng-trigger, that's added for every :enter view\n private hasClass(element: NgView, cls: string) {\n return element && element['$$classes'] && element['$$classes'][cls];\n }\n}\n\nexport class NativeScriptAnimationDriver implements AnimationDriver {\n private static validProperties = [...CssAnimationProperty._getPropertyNames(), 'transform'];\n\n getParentElement(element: NgView): NgView {\n return element?.parent as NgView;\n }\n\n validateStyleProperty(property: string): boolean {\n NativeScriptDebug.animationsLog(`CssAnimationProperty.validateStyleProperty: ${property}`);\n return NativeScriptAnimationDriver.validProperties.indexOf(property) !== -1;\n }\n\n matchesElement(element: NgView, rawSelector: string): boolean {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.matchesElement ` + `element: ${element}, selector: ${rawSelector}`);\n\n const selector = this.makeSelector(rawSelector);\n return selector.match(element);\n }\n\n containsElement(elm1: NgView, elm2: NgView): boolean {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.containsElement ` + `element1: ${elm1}, element2: ${elm2}`);\n\n // Checking if the parent is our fake body object\n if (elm1['isOverride']) {\n return true;\n }\n\n const params: ViewMatchParams = { originalView: elm2 };\n const result: ViewMatchResult = this.visitDescendants(elm1, viewMatches, params);\n\n return result.found;\n }\n\n query(element: NgView, rawSelector: string, multi: boolean): NgView[] {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.query ` + `element: ${element}, selector: ${rawSelector} ` + `multi: ${multi}`);\n\n const selector = this.makeSelector(rawSelector);\n const params: QueryParams = { selector, multi };\n const result: QueryResult = this.visitDescendants(element, queryDescendants, params);\n\n return result.matches || [];\n }\n\n computeStyle(element: NgView, prop: string): string {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.computeStyle ` + `element: ${element}, prop: ${prop}`);\n\n const camelCaseProp = dashCaseToCamelCase(prop);\n return element.style[camelCaseProp];\n }\n\n animate(element: NgView, keyframes: Keyframe[], duration: number, delay: number, easing: string): AnimationPlayer {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.animate ` + `element: ${element}, keyframes: ${keyframes} ` + `duration: ${duration}, delay: ${delay} ` + `easing: ${easing}`);\n\n return new NativeScriptAnimationPlayer(element, keyframes, duration, delay, easing);\n }\n\n private makeSelector(rawSelector: string): Selector {\n return new Selector(rawSelector);\n }\n\n private visitDescendants(element: NgView, cb: (child: NgView, result: any, params: any) => boolean, cbParams: any): any {\n const result = {};\n // fill the result obj with the result from the callback function\n eachDescendant(element, (child: NgView) => cb(child, result, cbParams));\n\n return result;\n }\n}\n\nfunction viewMatches(element: NgView, result: ViewMatchResult, params: ViewMatchParams): boolean {\n if (element === params.originalView) {\n result.found = true;\n }\n\n return !result.found;\n}\n\nfunction queryDescendants(element: NgView, result: QueryResult, params: QueryParams): boolean {\n if (!result.matches) {\n result.matches = [];\n }\n\n const { selector, multi } = params;\n\n // skip comment and text nodes\n // because they are not actual Views\n // and cannot be animated\n if (element instanceof InvisibleNode || !selector.match(element)) {\n return true;\n }\n\n if (element instanceof ProxyViewContainer) {\n element.eachChild((child: NgView) => {\n result.matches.push(child);\n return true;\n });\n } else {\n result.matches.push(element);\n }\n\n return multi;\n}\n","import { NgModule, Injectable, Inject, NgZone, RendererFactory2, Optional, SkipSelf, ɵChangeDetectionScheduler as ChangeDetectionScheduler, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { AnimationBuilder, ɵBrowserAnimationBuilder as BrowserAnimationBuilder } from '@angular/animations';\n\nimport { AnimationDriver, ɵAnimationRendererFactory as AnimationRendererFactory, ɵAnimationStyleNormalizer as AnimationStyleNormalizer, ɵWebAnimationsStyleNormalizer as WebAnimationsStyleNormalizer, ɵAnimationEngine as AnimationEngine } from '@angular/animations/browser';\n\n// import { NativeScriptModule } from \"../nativescript.module\";\nimport { NativeScriptRendererFactory } from '../nativescript-renderer';\nimport { NativeScriptAnimationDriver } from './animation-driver';\nimport { throwIfAlreadyLoaded } from '../utils/general';\nimport { NativeScriptCommonModule } from '../nativescript-common.module';\n\n@Injectable()\nexport class InjectableAnimationEngine extends AnimationEngine {\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(@Inject(DOCUMENT) doc: any, driver: AnimationDriver, normalizer: AnimationStyleNormalizer) {\n super(doc, driver, normalizer);\n }\n}\n\nexport function instantiateSupportedAnimationDriver() {\n return new NativeScriptAnimationDriver();\n}\n\nexport function instantiateRendererFactory(renderer: NativeScriptRendererFactory, engine: AnimationEngine, zone: NgZone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\n\nexport function instantiateDefaultStyleNormalizer() {\n return new WebAnimationsStyleNormalizer();\n}\n\n@NgModule({\n imports: [NativeScriptCommonModule],\n providers: [\n {\n provide: AnimationDriver,\n useFactory: instantiateSupportedAnimationDriver,\n },\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n {\n provide: AnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer,\n },\n { provide: AnimationEngine, useClass: InjectableAnimationEngine },\n {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [NativeScriptRendererFactory, AnimationEngine, NgZone],\n },\n ],\n})\nexport class NativeScriptAnimationsModule {\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(@Optional() @SkipSelf() parentModule: NativeScriptAnimationsModule) {\n // Prevents NativeScriptAnimationsModule from getting imported multiple times\n throwIfAlreadyLoaded(parentModule, 'NativeScriptAnimationsModule');\n }\n}\n","import { path } from '@nativescript/core';\nimport { Observable, Observer } from 'rxjs';\nimport { NSFileSystem } from '../file-system/ns-file-system';\n\nexport type httpResponseFactory<T> = (url: string, body: any, status: number) => T;\nexport type httpErrorFactory = (url: string, body: any, status: number) => any;\n\nexport function isLocalRequest(url: string): boolean {\n return url.indexOf('~') === 0 || url.indexOf('/') === 0;\n}\n\nexport function getAbsolutePath(url: string, nsFileSystem: NSFileSystem): string {\n url = url.replace('~', '').replace('/', '');\n url = path.join(nsFileSystem.currentApp().path, url);\n return url;\n}\n\nexport function processLocalFileRequest<T>(url: string, nsFileSystem: NSFileSystem, successResponse: httpResponseFactory<T>, errorResponse: httpErrorFactory): Observable<T> {\n url = getAbsolutePath(url, nsFileSystem);\n\n // request from local app resources\n return new Observable((observer: Observer<T>) => {\n if (nsFileSystem.fileExists(url)) {\n const localFile = nsFileSystem.fileFromPath(url);\n localFile.readText().then(\n (data) => {\n try {\n const json = JSON.parse(data);\n observer.next(successResponse(url, json, 200));\n observer.complete();\n } catch (error) {\n // Even though the response status was 2xx, this is still an error.\n // The parse error contains the text of the body that failed to parse.\n const errorResult = { error, text: data };\n observer.error(errorResponse(url, errorResult, 200));\n }\n },\n (err: unknown) => {\n observer.error(errorResponse(url, err, 400));\n }\n );\n } else {\n observer.error(errorResponse(url, 'Not Found', 404));\n }\n });\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpEvent, HttpResponse, HttpErrorResponse, HttpXhrBackend } from '@angular/common/http';\nimport { XhrFactory } from '@angular/common';\nimport { Observable } from 'rxjs';\n\nimport { NSFileSystem } from '../file-system/ns-file-system';\nimport { isLocalRequest, processLocalFileRequest } from './http-utils';\n\n@Injectable()\nexport class NsHttpBackEnd extends HttpXhrBackend {\n constructor(xhrFactory: XhrFactory, private nsFileSystem: NSFileSystem) {\n super(xhrFactory);\n }\n\n handle(req: HttpRequest<any>): Observable<HttpEvent<any>> {\n let result: Observable<HttpEvent<any>>;\n\n if (isLocalRequest(req.url)) {\n result = this.handleLocalFileRequest(req.url);\n } else {\n result = super.handle(req);\n }\n\n return result;\n }\n\n private handleLocalFileRequest(url: string): Observable<HttpEvent<any>> {\n return processLocalFileRequest(url, this.nsFileSystem, createSuccessResponse, createErrorResponse);\n }\n}\n\nfunction createSuccessResponse(url: string, body: any, status: number): HttpEvent<any> {\n return new HttpResponse({\n url,\n body,\n status,\n statusText: 'OK',\n });\n}\n\nfunction createErrorResponse(url: string, body: any, status: number): HttpErrorResponse {\n return new HttpErrorResponse({\n url,\n error: body,\n status,\n statusText: 'ERROR',\n });\n}\n","import {\n HttpBackend,\n HttpFeature,\n HttpFeatureKind,\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { makeEnvironmentProviders, NgModule } from '@angular/core';\n\nimport { NSFileSystem } from '../file-system/ns-file-system';\nimport { NsHttpBackEnd } from './ns-http-backend';\n\nexport function provideNativeScriptHttpClient(...features: HttpFeature<HttpFeatureKind>[]) {\n return makeEnvironmentProviders([\n provideHttpClient(...features),\n NSFileSystem,\n NsHttpBackEnd,\n { provide: HttpBackend, useExisting: NsHttpBackEnd },\n ]);\n}\n@NgModule({\n providers: [provideNativeScriptHttpClient(withInterceptorsFromDi())],\n})\nexport class NativeScriptHttpClientModule {}\n","import { ComponentRef } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, ChildrenOutletContexts, PRIMARY_OUTLET } from '@angular/router';\n\n/**\n * There are cases where multiple activatedRoute nodes should be associated/handled by the same PageRouterOutlet.\n * We can gat additional ActivatedRoutes nodes when there is:\n * - Lazy loading - there is an additional ActivatedRoute node for the RouteConfig with the `loadChildren` setup\n * - Componentless routes - there is an additional ActivatedRoute node for the componentless RouteConfig\n *\n * Example:\n * R <-- root\n * |\n * feature (lazy module) <-- RouteConfig: { path: \"lazy\", loadChildren: \"./feature/feature.module#FeatureModule\" }\n * |\n * module (componentless route) <-- RouteConfig: { path: \"module\", children: [...] } // Note: No 'component'\n * |\n * home <-- RouteConfig: { path: \"module\", component: MyComponent } - this is what we get as activatedRoute param\n *\n * In these cases we will mark the top-most node (feature). NSRouteReuseStrategy will detach the tree there and\n * use this ActivateRoute as a kay for caching.\n */\nexport function findTopActivatedRouteNodeForOutlet(activatedRoute: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n // TODO: test this and figure it out if it's really no longer needed\n return activatedRoute;\n // let outletActivatedRoute = activatedRoute;\n\n // while (outletActivatedRoute.parent && outletActivatedRoute.parent.routeConfig && !outletActivatedRoute.parent.routeConfig.component) {\n // outletActivatedRoute = outletActivatedRoute.parent;\n // }\n\n // return outletActivatedRoute;\n}\n\nexport const pageRouterActivatedSymbol = Symbol('page-router-activated');\nexport const loaderRefSymbol = Symbol('loader-ref');\n\nexport function destroyComponentRef(componentRef: ComponentRef<any>) {\n if (componentRef) {\n const loaderRef = componentRef[loaderRefSymbol];\n if (loaderRef) {\n loaderRef.destroy();\n }\n componentRef.destroy();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\n\nimport { NativeScriptDebug } from '../../trace';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { destroyComponentRef, findTopActivatedRouteNodeForOutlet, pageRouterActivatedSymbol } from './page-router-outlet-utils';\n\ninterface CacheItem {\n key: string;\n state: DetachedRouteHandle;\n isModal: boolean;\n markedForDeletion?: boolean;\n}\n\nconst getSnapshotKey = function (snapshot: ActivatedRouteSnapshot): string {\n return snapshot.pathFromRoot.join('->');\n};\n\n/**\n * Detached state cache\n */\nclass DetachedStateCache {\n private cache = new Array<CacheItem>();\n\n public get length(): number {\n return this.cache.length;\n }\n\n public push(cacheItem: CacheItem) {\n this.cache.push(cacheItem);\n }\n\n public pop(): CacheItem {\n return this.cache.pop();\n }\n\n public peek(): CacheItem {\n return this.cache[this.cache.length - 1];\n }\n\n public clear() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`DetachedStateCache.clear() ${this.cache.length} items will be destroyed`);\n }\n\n while (this.cache.length > 0) {\n const state = <any>this.cache.pop().state;\n if (!state.componentRef) {\n throw new Error('No componentRef found in DetachedRouteHandle');\n }\n\n destroyComponentRef(state.componentRef);\n }\n }\n\n public markCurrentForClear() {\n for (const item of this.cache) {\n item.markedForDeletion = true;\n }\n }\n\n public clearMarked() {\n // try to preserve same order as .clear()\n for (let i = this.cache.length - 1; i >= 0; i--) {\n const cacheItem = this.cache[i];\n if (cacheItem.markedForDeletion) {\n const state = <any>cacheItem.state;\n if (!state.componentRef) {\n throw new Error('No componentRef found in DetachedRouteHandle');\n }\n\n destroyComponentRef(state.componentRef);\n this.cache.splice(i, 1);\n }\n }\n }\n\n public clearModalCache() {\n let removedItemsCount = 0;\n const hasModalPages = this.cache.some((cacheItem) => {\n return cacheItem.isModal;\n });\n\n if (hasModalPages) {\n let modalCacheCleared = false;\n\n while (!modalCacheCleared) {\n const cacheItem = this.peek();\n const state = <any>cacheItem.state;\n\n if (!state.componentRef) {\n throw new Error('No componentRef found in DetachedRouteHandle');\n }\n\n destroyComponentRef(state.componentRef);\n if (cacheItem.isModal) {\n modalCacheCleared = true;\n }\n\n this.pop();\n removedItemsCount++;\n }\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`DetachedStateCache.clearModalCache() ${removedItemsCount} items will be destroyed`);\n }\n }\n}\n\n/**\n * Detaches subtrees loaded inside PageRouterOutlet in forward navigation\n * and reattaches them on back.\n * Reuses routes as long as their route config is the same.\n */\n@Injectable()\nexport class NSRouteReuseStrategy implements RouteReuseStrategy {\n private cacheByOutlet: { [key: string]: DetachedStateCache } = {};\n\n constructor(private location: NSLocationStrategy) {}\n\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const { outlet } = this.findValidOutletAndKey(route);\n const key = getSnapshotKey(route);\n\n let isPageActivated = false;\n let tmp = route;\n while (!(isPageActivated = tmp[pageRouterActivatedSymbol]) && tmp.parent) {\n tmp = tmp.parent;\n }\n const isBack = outlet ? outlet.isPageNavigationBack : false;\n let shouldDetach = outlet && !isBack && isPageActivated;\n\n if (outlet) {\n if (outlet.parent && !outlet.parent.shouldDetach) {\n shouldDetach = false;\n }\n\n outlet.shouldDetach = shouldDetach;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`shouldDetach isBack: ${isBack} key: ${key} result: ${shouldDetach}`);\n }\n\n return shouldDetach;\n }\n protected findValidOutletAndKey(targetRoute: ActivatedRouteSnapshot) {\n let route = targetRoute;\n const routeOutletKey = this.location.getRouteFullPath(route);\n let outletKey = routeOutletKey;\n let outlet = this.location.findOutlet(outletKey, route);\n while (!outlet) {\n if (!route.parent) {\n return { outlet: null, outletKey: routeOutletKey };\n }\n route = route.parent;\n outletKey = this.location.getRouteFullPath(route);\n outlet = this.location.findOutlet(outletKey, route);\n }\n\n if (outlet) {\n while (!outlet.outletKeys.includes(outletKey)) {\n if (!route.parent) {\n NativeScriptDebug.routeReuseStrategyLog(`Could not find valid outlet key for route: ${targetRoute}.`);\n return { outlet, outletKey: routeOutletKey };\n }\n route = route.parent;\n outletKey = this.location.getRouteFullPath(route);\n }\n }\n\n return { outlet, outletKey };\n }\n\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const { outlet, outletKey } = this.findValidOutletAndKey(route);\n const cache = this.cacheByOutlet[outletKey];\n if (!cache) {\n return false;\n }\n\n const key = getSnapshotKey(route);\n const isBack = outlet ? outlet.isPageNavigationBack : false;\n const shouldAttach = isBack && cache.peek()?.key === key;\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`shouldAttach isBack: ${isBack} key: ${key} result: ${shouldAttach}`);\n }\n\n if (outlet) {\n outlet.shouldDetach = true;\n }\n\n return shouldAttach;\n }\n\n store(route: ActivatedRouteSnapshot, state: DetachedRouteHandle): void {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const key = getSnapshotKey(route);\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`store key: ${key}, state: ${state}`);\n }\n\n const { outletKey } = this.findValidOutletAndKey(route);\n\n // tslint:disable-next-line:max-line-length\n const cache = (this.cacheByOutlet[outletKey] = this.cacheByOutlet[outletKey] || new DetachedStateCache());\n\n if (state) {\n let isModal = false;\n if (this.location._modalNavigationDepth > 0) {\n isModal = true;\n }\n\n cache.push({ key, state, isModal });\n } else {\n const topItem = cache.peek();\n if (topItem.key === key) {\n cache.pop();\n\n if (!cache.length) {\n delete this.cacheByOutlet[outletKey];\n }\n } else {\n throw new Error(\"Trying to pop from DetachedStateCache but keys don't match. \" + `expected: ${topItem.key} actual: ${key}`);\n }\n }\n }\n\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const { outlet, outletKey } = this.findValidOutletAndKey(route);\n const cache = this.cacheByOutlet[outletKey];\n if (!cache) {\n return null;\n }\n\n const key = getSnapshotKey(route);\n const isBack = outlet ? outlet.isPageNavigationBack : false;\n const cachedItem = cache.peek();\n\n let state = null;\n if (isBack && cachedItem && cachedItem.key === key) {\n state = cachedItem.state;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`retrieved isBack: ${isBack} key: ${key} state: ${state}`);\n }\n\n return state;\n }\n\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n const shouldReuse = future.routeConfig === curr.routeConfig;\n\n if (shouldReuse && curr && curr[pageRouterActivatedSymbol]) {\n // When reusing route - copy the pageRouterActivated to the new snapshot\n // It's needed in shouldDetach to determine if the route should be detached.\n future[pageRouterActivatedSymbol] = curr[pageRouterActivatedSymbol];\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`shouldReuseRoute result: ${shouldReuse}`);\n }\n\n return shouldReuse;\n }\n\n clearCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.clear();\n }\n }\n\n markCacheForClear(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.markCurrentForClear();\n }\n }\n\n popCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n if (cache.peek()) {\n const state: any = cache.pop()?.state;\n if (state?.componentRef) {\n destroyComponentRef(state?.componentRef);\n }\n }\n }\n }\n\n markCacheForPop(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n const item = cache.peek();\n if (item) {\n item.markedForDeletion = true;\n }\n }\n }\n\n clearMarkedCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.clearMarked();\n }\n }\n\n clearModalCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.clearModalCache();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationBehaviorOptions, NavigationExtras, Router, UrlTree } from '@angular/router';\nimport { NativeScriptDebug } from '../../trace';\nimport { FrameService } from '../frame.service';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { NavigationOptions, Outlet } from './ns-location-utils';\nimport { findTopActivatedRouteNodeForOutlet } from './page-router-outlet-utils';\n\nexport type ExtendedNavigationExtras = NavigationExtras & NavigationOptions;\nexport type ExtendedNavigationBehaviorOptions = NavigationBehaviorOptions & NavigationOptions;\n\nexport interface BackNavigationOptions {\n outlets?: Array<string>;\n relativeTo?: ActivatedRoute | null;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RouterExtensions {\n constructor(public router: Router, public locationStrategy: NSLocationStrategy, public frameService: FrameService) {}\n\n public navigate(commands: any[], extras?: ExtendedNavigationExtras): Promise<boolean> {\n return this.router.navigate(commands, extras);\n }\n\n public navigateByUrl(url: string | UrlTree, options?: ExtendedNavigationBehaviorOptions): Promise<boolean> {\n return this.router.navigateByUrl(url, options);\n }\n\n public back(backNavigationOptions?: BackNavigationOptions) {\n if (backNavigationOptions) {\n this.backOutlets(backNavigationOptions);\n } else {\n this.locationStrategy.back();\n }\n }\n\n public canGoBack(backNavigationOptions?: BackNavigationOptions) {\n let canGoBack = true;\n if (backNavigationOptions) {\n const { outletsToBack, outlets } = this.findOutletsToBack(backNavigationOptions);\n\n if (outletsToBack.length !== outlets.length) {\n NativeScriptDebug.routerError('No outlet found relative to activated route');\n } else {\n outletsToBack.forEach((outletToBack) => {\n if (!this.locationStrategy.canGoBack(outletToBack)) {\n canGoBack = false;\n }\n });\n }\n } else {\n canGoBack = this.locationStrategy.canGoBack();\n }\n\n return canGoBack;\n }\n\n public backToPreviousPage() {\n this.frameService.getFrame().goBack();\n }\n\n public canGoBackToPreviousPage(): boolean {\n return this.frameService.getFrame().canGoBack();\n }\n\n private backOutlets(options: BackNavigationOptions) {\n const { outletsToBack, outlets } = this.findOutletsToBack(options);\n\n if (outletsToBack.length !== outlets.length) {\n NativeScriptDebug.routerError('No outlet found relative to activated route');\n } else {\n outletsToBack.forEach((outletToBack) => {\n if (outletToBack.isPageNavigationBack) {\n NativeScriptDebug.routerError('Attempted to call startGoBack while going back:');\n } else {\n this.locationStrategy.back(outletToBack);\n }\n });\n }\n }\n\n // tslint:disable-next-line:max-line-length\n private findOutletsToBack(options?: BackNavigationOptions): { outletsToBack: Array<Outlet>; outlets: Array<string> } {\n const rootRoute: ActivatedRoute = this.router.routerState.root;\n let outlets = options.outlets;\n let relativeRoute = options.relativeTo || rootRoute;\n\n const relativeRouteOutlet = this.findOutletByRoute(relativeRoute);\n const isNSEmptyOutlet = relativeRouteOutlet && relativeRouteOutlet.isNSEmptyOutlet;\n\n // Lazy named outlet has added 'primary' inner NSEmptyOutlet child.\n // Take parent route when `relativeTo` option points to the outer named outlet.\n if (isNSEmptyOutlet && relativeRoute.outlet !== 'primary') {\n relativeRoute = relativeRoute.parent || relativeRoute;\n }\n\n outlets = outlets || [relativeRoute.outlet];\n\n const outletsToBack = this.findOutletsRecursive([...outlets], relativeRoute);\n\n return { outletsToBack: outletsToBack, outlets: outlets };\n }\n\n // warning, outlets is mutable!\n private findOutletsRecursive(outlets: string[], route?: ActivatedRoute) {\n if (!route || outlets.length === 0) {\n return [];\n }\n const outletsToBack = [];\n if (outlets.some((currentOutlet) => currentOutlet === route.outlet)) {\n const outlet = this.findOutletByRoute(route);\n if (outlet) {\n outlets.splice(outlets.indexOf(route.outlet), 1);\n outletsToBack.push(outlet);\n }\n }\n if (!route.children) {\n return outletsToBack;\n }\n for (let index = 0; index < route.children.length; index++) {\n if (outlets.length === 0) {\n break;\n }\n const currentRoute = route.children[index];\n outletsToBack.push(...this.findOutletsRecursive(outlets, currentRoute));\n }\n return outletsToBack;\n }\n\n private findOutletByRoute(currentRoute: ActivatedRoute): Outlet {\n const currentRouteSnapshop = findTopActivatedRouteNodeForOutlet(currentRoute.snapshot);\n const outletKey = this.locationStrategy.getRouteFullPath(currentRouteSnapshop);\n const outlet = this.locationStrategy.findOutlet(outletKey, currentRouteSnapshop);\n\n return outlet;\n }\n}\n","import { Directive, Input, ElementRef, NgZone, AfterViewInit } from '@angular/core';\nimport { NavigationExtras } from '@angular/router';\nimport { ActivatedRoute, Router, UrlTree } from '@angular/router';\nimport { NavigationTransition } from '@nativescript/core';\nimport { NativeScriptDebug } from '../../trace';\nimport { RouterExtensions } from './router-extensions';\nimport { NavigationOptions } from './ns-location-utils';\n\n// Copied from \"@angular/router/src/config\"\nexport type QueryParamsHandling = 'merge' | 'preserve' | '';\n\n/**\n * The nsRouterLink directive lets you link to specific parts of your app.\n *\n * Consider the following route configuration:\n * ```\n * [{ path: \"/user\", component: UserCmp }]\n * ```\n *\n * When linking to this `User` route, you can write:\n *\n * ```\n * <a [nsRouterLink]=\"[\"/user\"]\">link to user component</a>\n * ```\n *\n * NSRouterLink expects the value to be an array of path segments, followed by the params\n * for that level of routing. For instance `[\"/team\", {teamId: 1}, \"user\", {userId: 2}]`\n * means that we want to generate a link to `/team;teamId=1/user;userId=2`.\n *\n * The first segment name can be prepended with `/`, `./`, or `../`.\n * If the segment begins with `/`, the router will look up the route from the root of the app.\n * If the segment begins with `./`, or doesn\"t begin with a slash, the router will\n * instead look in the current component\"s children for the route.\n * And if the segment begins with `../`, the router will go up one level.\n */\n@Directive({ \n selector: '[nsRouterLink]', \n standalone: true,\n})\nexport class NSRouterLink implements AfterViewInit {\n // tslint:disable-line:directive-class-suffix\n @Input() target: string;\n @Input() queryParams: { [k: string]: any };\n @Input() fragment: string;\n\n @Input() queryParamsHandling: QueryParamsHandling;\n @Input() preserveQueryParams: boolean;\n @Input() preserveFragment: boolean;\n @Input() skipLocationChange: boolean;\n @Input() replaceUrl: boolean;\n\n @Input() clearHistory: boolean;\n @Input() pageTransition: boolean | string | NavigationTransition = true;\n @Input() pageTransitionDuration;\n\n private commands: any[] = [];\n\n constructor(private ngZone: NgZone, private router: Router, private navigator: RouterExtensions, private route: ActivatedRoute, private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.el.nativeElement.on('tap', () => {\n this.ngZone.run(() => {\n this.onTap();\n });\n });\n }\n\n @Input('nsRouterLink')\n set params(data: any[] | string) {\n if (Array.isArray(data)) {\n this.commands = data;\n } else {\n this.commands = [data];\n }\n }\n\n onTap() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`nsRouterLink.tapped: ${this.commands} ` + `clear: ${this.clearHistory} ` + `transition: ${JSON.stringify(this.pageTransition)} ` + `duration: ${this.pageTransitionDuration}`);\n }\n\n const extras = this.getExtras();\n // this.navigator.navigateByUrl(this.urlTree, extras);\n this.navigator.navigate(this.commands, {\n ...extras,\n relativeTo: this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n }\n\n private getExtras(): NavigationExtras & NavigationOptions {\n const transition = this.getTransition();\n return {\n skipLocationChange: attrBoolValue(this.skipLocationChange),\n replaceUrl: attrBoolValue(this.replaceUrl),\n\n clearHistory: this.convertClearHistory(this.clearHistory),\n animated: transition.animated,\n transition: transition.transition,\n };\n }\n\n get urlTree(): UrlTree {\n const urlTree = this.router.createUrlTree(this.commands, {\n relativeTo: this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`nsRouterLink urlTree created: ${urlTree}`);\n }\n\n return urlTree;\n }\n\n private convertClearHistory(value: boolean | string): boolean {\n return value === true || value === 'true';\n }\n\n private getTransition(): { animated: boolean; transition?: NavigationTransition } {\n let transition: NavigationTransition;\n let animated: boolean;\n\n if (typeof this.pageTransition === 'boolean') {\n animated = this.pageTransition;\n } else if (typeof this.pageTransition === 'string') {\n if (this.pageTransition === 'none' || this.pageTransition === 'false') {\n animated = false;\n } else {\n animated = true;\n transition = {\n name: <string>this.pageTransition,\n };\n }\n } else {\n animated = true;\n transition = <NavigationTransition>this.pageTransition;\n }\n\n const duration = +this.pageTransitionDuration;\n if (!isNaN(duration)) {\n transition = transition || {};\n transition.duration = duration;\n }\n\n return { animated, transition };\n }\n}\n\nfunction attrBoolValue(s: any): boolean {\n return s === '' || !!s;\n}\n","/* tslint:disable:forin */\n// Copied unexported functions from @angular/router/src/url_tree\nimport { UrlTree, UrlSegment, PRIMARY_OUTLET } from '@angular/router';\n// UrlSegmentGroup not exported, just use any.\ntype UrlSegmentGroup = any;\n\nexport function containsTree(container: UrlTree, containee: UrlTree, exact: boolean): boolean {\n if (exact) {\n return equalSegmentGroups(container.root, containee.root);\n } else {\n return containsSegmentGroup(container.root, containee.root);\n }\n}\n\nfunction equalSegmentGroups(container: UrlSegmentGroup, containee: UrlSegmentGroup): boolean {\n if (!equalPath(container.segments, containee.segments)) {\n return false;\n }\n if (container.numberOfChildren !== containee.numberOfChildren) {\n return false;\n }\n for (const c in containee.children) {\n if (!container.children[c]) {\n return false;\n }\n if (!equalSegmentGroups(container.children[c], containee.children[c])) {\n return false;\n }\n }\n return true;\n}\n\nfunction containsSegmentGroup(container: UrlSegmentGroup, containee: UrlSegmentGroup): boolean {\n return containsSegmentGroupHelper(container, containee, containee.segments);\n}\n\nfunction containsSegmentGroupHelper(container: UrlSegmentGroup, containee: UrlSegmentGroup, containeePaths: UrlSegment[]): boolean {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths)) {\n return false;\n }\n if (containee.hasChildren()) {\n return false;\n }\n return true;\n } else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths)) {\n return false;\n }\n for (const c in containee.children) {\n if (!container.children[c]) {\n return false;\n }\n if (!containsSegmentGroup(container.children[c], containee.children[c])) {\n return false;\n }\n }\n return true;\n } else {\n const current = containeePaths.slice(0, container.segments.length);\n const next = containeePaths.slice(container.segments.length);\n if (!equalPath(container.segments, current)) {\n return false;\n }\n if (!container.children[PRIMARY_OUTLET]) {\n return false;\n }\n return containsSegmentGroupHelper(container.children[PRIMARY_OUTLET], containee, next);\n }\n}\n\nexport function equalPath(a: UrlSegment[], b: UrlSegment[]): boolean {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i].path !== b[i].path) {\n return false;\n }\n }\n return true;\n}\n","import { AfterContentInit, ContentChildren, Directive, ElementRef, Input, OnChanges, OnDestroy, QueryList, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NavigationEnd, Router, UrlTree } from '@angular/router';\nimport { containsTree } from './private-imports/router-url-tree';\n\nimport { NSRouterLink } from './ns-router-link';\n\n/**\n * The NSRouterLinkActive directive lets you add a CSS class to an element when the link\"s route\n * becomes active.\n *\n * Consider the following example:\n *\n * ```\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"active-link\">Bob</a>\n * ```\n *\n * When the url is either \"/user\" or \"/user/bob\", the active-link class will\n * be added to the component. If the url changes, the class will be removed.\n *\n * You can set more than one class, as follows:\n *\n * ```\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"class1 class2\">Bob</a>\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"[\"class1\", \"class2\"]\">Bob</a>\n * ```\n *\n * You can configure NSRouterLinkActive by passing `exact: true`. This will add the\n * classes only when the url matches the link exactly.\n *\n * ```\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"active-link\"\n * [nsRouterLinkActiveOptions]=\"{exact: true}\">Bob</a>\n * ```\n *\n * Finally, you can apply the NSRouterLinkActive directive to an ancestor of a RouterLink.\n *\n * ```\n * <div [nsRouterLinkActive]=\"active-link\" [nsRouterLinkActiveOptions]=\"{exact: true}\">\n * <a [nsRouterLink]=\"/user/jim\">Jim</a>\n * <a [nsRouterLink]=\"/user/bob\">Bob</a>\n * </div>\n * ```\n *\n * This will set the active-link class on the div tag if the url is either \"/user/jim\" or\n * \"/user/bob\".\n *\n * @stable\n */\n@Directive({\n selector: '[nsRouterLinkActive]',\n exportAs: 'routerLinkActive',\n standalone: true,\n})\nexport class NSRouterLinkActive implements OnChanges, OnDestroy, AfterContentInit {\n // tslint:disable-line:max-line-length directive-class-suffix\n @ContentChildren(NSRouterLink) links: QueryList<NSRouterLink>;\n\n private classes: string[] = [];\n private subscription: Subscription;\n private active = false;\n\n @Input() nsRouterLinkActiveOptions: { exact: boolean } = { exact: false };\n\n constructor(private router: Router, private element: ElementRef, private renderer: Renderer2) {\n this.subscription = router.events.subscribe((s) => {\n if (s instanceof NavigationEnd) {\n this.update();\n }\n });\n }\n\n get isActive(): boolean {\n return this.active;\n }\n\n ngAfterContentInit(): void {\n this.links.changes.subscribe(() => this.update());\n this.update();\n }\n\n @Input()\n set nsRouterLinkActive(data: string[] | string) {\n if (Array.isArray(data)) {\n this.classes = <any>data;\n } else {\n this.classes = data.split(' ');\n }\n }\n\n ngOnChanges() {\n this.update();\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n private update(): void {\n if (!this.links) {\n return;\n }\n const hasActiveLinks = this.hasActiveLinks();\n // react only when status has changed to prevent unnecessary dom updates\n if (this.active !== hasActiveLinks) {\n const currentUrlTree = this.router.parseUrl(this.router.url);\n const isActiveLinks = this.reduceList(currentUrlTree, this.links);\n this.classes.forEach((c) => {\n if (isActiveLinks) {\n this.renderer.addClass(this.element.nativeElement, c);\n } else {\n this.renderer.removeClass(this.element.nativeElement, c);\n }\n });\n }\n Promise.resolve(hasActiveLinks).then((active) => (this.active = active));\n }\n\n private reduceList(currentUrlTree: UrlTree, q: QueryList<any>): boolean {\n return q.reduce((res: boolean, link: NSRouterLink) => {\n return res || containsTree(currentUrlTree, link.urlTree, this.nsRouterLinkActiveOptions.exact);\n }, false);\n }\n\n private isLinkActive(router: Router): (link: NSRouterLink) => boolean {\n return (link: NSRouterLink) => router.isActive(link.urlTree, this.nsRouterLinkActiveOptions.exact);\n }\n\n private hasActiveLinks(): boolean {\n return this.links.some(this.isLinkActive(this.router));\n }\n}\n","import {\n ChangeDetectorRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n createComponent,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n HostAttributeToken,\n inject,\n InjectionToken,\n InjectOptions,\n Injector,\n NgZone,\n OnDestroy,\n Output,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n ChildrenOutletContexts,\n Data,\n PRIMARY_OUTLET,\n Router,\n RouterOutletContract,\n} from '@angular/router';\n\nimport { Frame, NavigatedData, NavigationEntry, Page, profile } from '@nativescript/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DetachedLoader } from '../../cdk/detached-loader';\nimport { PageService } from '../../cdk/frame-page/page.service';\nimport { registerElement } from '../../element-registry';\nimport { PAGE_FACTORY, PageFactory } from '../../tokens';\nimport { NativeScriptDebug } from '../../trace';\nimport { ViewUtil } from '../../view-util';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { defaultNavOptions, Outlet } from './ns-location-utils';\nimport { NSRouteReuseStrategy } from './ns-route-reuse-strategy';\nimport {\n destroyComponentRef,\n findTopActivatedRouteNodeForOutlet,\n loaderRefSymbol,\n pageRouterActivatedSymbol,\n} from './page-router-outlet-utils';\nimport { ExtendedNavigationExtras } from './router-extensions';\n\nfunction zoneWrap<T extends (...args: unknown[]) => unknown>(fn: T): T {\n return typeof Zone === 'undefined' ? fn : Zone.current.wrap(fn, 'angular');\n}\n\nexport class PageRoute {\n activatedRoute: BehaviorSubject<ActivatedRoute>;\n\n constructor(startRoute: ActivatedRoute) {\n this.activatedRoute = new BehaviorSubject(startRoute);\n }\n}\n\nfunction isComponentFactoryResolver(item: any): item is ComponentFactoryResolver {\n return !!item.resolveComponentFactory;\n}\n\nfunction callableOnce<T>(fn: (...args: T[]) => void) {\n let called = false;\n return (...args: T[]) => {\n if (called) {\n return;\n }\n called = true;\n return fn(...args);\n };\n}\n\nexport class DestructibleInjector implements Injector {\n private refs = new Set<any>();\n constructor(\n private destructibleProviders: ProviderSet,\n private parent: Injector,\n ) {}\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectOptions): T {\n const ref = this.parent.get(token, notFoundValue, flags);\n\n // if we're skipping ourselves then it's not our responsibility to destroy\n if (!flags?.skipSelf && this.destructibleProviders.has(token)) {\n this.refs.add(ref);\n }\n\n return ref;\n }\n destroy() {\n this.refs.forEach((ref) => {\n if (ref.ngOnDestroy instanceof Function) {\n ref.ngOnDestroy();\n }\n });\n this.refs.clear();\n }\n}\n\ntype ProviderSet = Set<Type<any> | InjectionToken<any>>;\n\nconst routeToString = function (activatedRoute: ActivatedRoute | ActivatedRouteSnapshot): string {\n return activatedRoute.pathFromRoot.join('->');\n};\n\nregisterElement('page-router-outlet', () => Frame);\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({\n selector: 'page-router-outlet',\n standalone: true,\n}) // tslint:disable-line:directive-selector\nexport class PageRouterOutlet implements OnDestroy, RouterOutletContract {\n private parentContexts = inject(ChildrenOutletContexts);\n private location = inject(ViewContainerRef);\n private locationStrategy = inject(NSLocationStrategy);\n private resolver = inject(ComponentFactoryResolver);\n private changeDetector = inject(ChangeDetectorRef);\n private pageFactory = inject<PageFactory>(PAGE_FACTORY);\n private routeReuseStrategy = inject(NSRouteReuseStrategy);\n private ngZone = inject(NgZone);\n private router = inject(Router);\n private environmentInjector = inject(EnvironmentInjector);\n\n // tslint:disable-line:directive-class-suffix\n private activated: ComponentRef<any> | null = null;\n private _activatedRoute: ActivatedRoute | null = null;\n private detachedLoaderFactory: ComponentFactory<DetachedLoader>;\n\n private outlet: Outlet;\n private name: string;\n private isEmptyOutlet: boolean;\n private viewUtil: ViewUtil;\n private frame: Frame;\n // this function is used to clear the outlet cache (clear history)\n // usually it's cleared in `navigatedTo`, but on quick navigation, the event will be fired after angular already added more things to the cache\n // so now we call this if the component is detached or deactivated (meaning it's mid-navigation, before cache manipulation)\n private postNavFunction: () => void;\n\n attachEvents: EventEmitter<unknown> = new EventEmitter();\n detachEvents: EventEmitter<unknown> = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('activate') activateEvents = new EventEmitter<any>(); // tslint:disable-line:no-output-rename\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('deactivate') deactivateEvents = new EventEmitter<any>(); // tslint:disable-line:no-output-rename\n\n get isActivated(): boolean {\n return !!this.activated;\n }\n\n get component(): unknown {\n if (!this.activated) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Outlet is not activated');\n }\n return;\n }\n\n return this.activated.instance;\n }\n get activatedRoute(): ActivatedRoute {\n if (!this.activated) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Outlet is not activated');\n }\n return;\n }\n\n return this._activatedRoute;\n }\n\n get activatedRouteData(): Data {\n if (this._activatedRoute) {\n return this._activatedRoute.snapshot.data;\n }\n return {};\n }\n\n constructor() {\n const parentContexts = this.parentContexts;\n const name = inject(new HostAttributeToken('name'), { optional: true });\n const actionBarVisibility = inject(new HostAttributeToken('actionBarVisibility'), { optional: true });\n const isEmptyOutlet = !!inject(new HostAttributeToken('isEmptyOutlet'), { optional: true });\n const resolver = this.resolver;\n const elRef = inject(ElementRef);\n const viewUtil = inject(ViewUtil);\n\n this.isEmptyOutlet = isEmptyOutlet;\n this.frame = elRef.nativeElement;\n this.setActionBarVisibility(actionBarVisibility);\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.constructor frame: ${this.frame}`);\n }\n\n this.name = name || PRIMARY_OUTLET;\n parentContexts.onChildOutletCreated(this.name, <any>this);\n\n this.viewUtil = viewUtil;\n this.detachedLoaderFactory = resolver.resolveComponentFactory(DetachedLoader);\n }\n\n setActionBarVisibility(actionBarVisibility: string): void {\n switch (actionBarVisibility) {\n case 'always':\n case 'never':\n this.frame.actionBarVisibility = actionBarVisibility;\n return;\n\n default:\n this.frame.actionBarVisibility = 'auto';\n }\n }\n\n ngOnDestroy(): void {\n // In the event that the `parentContexts` has changed the outlet\n // via the creation of another outlet, the `onChildOutletDestroyed`\n // will be skipped\n if (this.parentContexts.getContext(this.name)?.outlet === <any>this) {\n // Clear accumulated modal view page cache when page-router-outlet\n // destroyed on modal view closing\n this.parentContexts.onChildOutletDestroyed(this.name);\n }\n\n if (this.outlet) {\n this.outlet.outletKeys.forEach((key) => {\n this.routeReuseStrategy.clearModalCache(key);\n });\n this.locationStrategy.clearOutlet(this.frame);\n } else {\n NativeScriptDebug.routerLog('PageRouterOutlet.ngOnDestroy: no outlet available for page-router-outlet');\n }\n\n if (this.isActivated) {\n const c = this.activated.instance;\n this.activated.hostView.detach();\n destroyComponentRef(this.activated);\n\n this.deactivateEvents.emit(c);\n this.activated = null;\n }\n }\n\n deactivate(): void {\n if (!this.outlet || !this.outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(\n 'Currently not in page back navigation - component should be detached instead of deactivated.',\n );\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('PageRouterOutlet.deactivate() while going back - should destroy');\n }\n\n if (!this.isActivated) {\n return;\n }\n this.postNavFunction?.();\n\n const c = this.activated.instance;\n destroyComponentRef(this.activated);\n\n this.activated = null;\n this._activatedRoute = null;\n\n this.deactivateEvents.emit(c);\n }\n\n /**\n * Called when the `RouteReuseStrategy` instructs to detach the subtree\n */\n detach(): ComponentRef<any> {\n if (!this.isActivated) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Outlet is not activated');\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.detach() - ${routeToString(this._activatedRoute)}`);\n }\n\n this.postNavFunction?.();\n\n // Detach from ChangeDetection\n this.activated.hostView.detach();\n\n const component = this.activated;\n this.activated = null;\n this._activatedRoute = null;\n this.detachEvents.emit(component.instance);\n return component;\n }\n\n /**\n * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\n */\n attach(ref: ComponentRef<any>, activatedRoute: ActivatedRoute) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.attach() - ${routeToString(activatedRoute)}`);\n }\n\n this.activated = ref;\n\n // reattach to ChangeDetection\n this.activated.hostView.markForCheck();\n this.activated.hostView.reattach();\n this._activatedRoute = activatedRoute;\n this.markActivatedRoute(activatedRoute);\n\n // we have a child with the same name, so we don't finish the back nav\n if (this.isFinalPageRouterOutlet()) {\n this.locationStrategy._finishBackPageNavigation(this.frame);\n }\n this.attachEvents.emit(ref.instance);\n }\n\n private isFinalPageRouterOutlet() {\n let children = this.parentContexts.getContext(this.name)?.children;\n while (children) {\n const childContext = children.getContext(this.name);\n if (!childContext || !childContext.outlet) {\n return true;\n }\n if (childContext.outlet instanceof PageRouterOutlet) {\n return false;\n }\n children = childContext.children;\n }\n return true;\n }\n\n /**\n * Called by the Router to instantiate a new component during the commit phase of a navigation.\n * This method in turn is responsible for calling the `routerOnActivate` hook of its child.\n */\n @profile\n activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver | EnvironmentInjector | null): void {\n this.outlet = this.outlet || this.getOutlet(activatedRoute.snapshot);\n if (!this.outlet) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerError('No outlet found relative to activated route');\n }\n return;\n }\n\n this.outlet.isNSEmptyOutlet = this.isEmptyOutlet;\n this.locationStrategy.updateOutletFrame(this.outlet, this.frame, this.isEmptyOutlet);\n\n if (this.outlet && this.outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(\n 'Currently in page back navigation - component should be reattached instead of activated.',\n );\n }\n if (this.isFinalPageRouterOutlet()) {\n this.locationStrategy._finishBackPageNavigation(this.frame);\n }\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.activateWith() - ${routeToString(activatedRoute)}`);\n }\n\n this._activatedRoute = activatedRoute;\n\n this.markActivatedRoute(activatedRoute);\n\n this.activateOnGoForward(activatedRoute, resolver || this.environmentInjector);\n this.activateEvents.emit(this.activated.instance);\n }\n\n private activateOnGoForward(\n activatedRoute: ActivatedRoute,\n resolverOrInjector: ComponentFactoryResolver | EnvironmentInjector,\n ): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(\n 'PageRouterOutlet.activate() forward navigation - ' + 'create detached loader in the loader container',\n );\n }\n\n const component = this.getComponentType(activatedRoute);\n const page = this.pageFactory({\n isNavigation: true,\n componentType: component,\n });\n const location = this.location;\n\n const destructibles = new Set([PageService]);\n const parentInjector = Injector.create({\n providers: [\n { provide: Page, useValue: page },\n { provide: Frame, useValue: this.frame },\n { provide: PageRoute, useValue: new PageRoute(activatedRoute) },\n { provide: ActivatedRoute, useValue: activatedRoute },\n { provide: ChildrenOutletContexts, useValue: this.parentContexts.getOrCreateContext(this.name).children },\n { provide: PageService, useClass: PageService },\n ],\n parent: location.injector,\n });\n\n const injector = new DestructibleInjector(destructibles, parentInjector);\n let loaderRef: ComponentRef<DetachedLoader>;\n if (isComponentFactoryResolver(resolverOrInjector)) {\n loaderRef = createComponent(DetachedLoader, {\n environmentInjector: this.environmentInjector,\n elementInjector: injector,\n });\n } else {\n const environmentInjector = resolverOrInjector;\n loaderRef = location.createComponent(DetachedLoader, { index: location.length, injector, environmentInjector });\n }\n loaderRef.onDestroy(() => injector.destroy());\n this.changeDetector.markForCheck();\n\n this.activated = loaderRef.instance.loadComponentInLocation(component);\n this.activated.changeDetectorRef.detectChanges();\n this.loadComponentInPage(page, this.activated, { activatedRoute });\n\n this.activated[loaderRefSymbol] = loaderRef;\n }\n\n @profile\n private loadComponentInPage(page: Page, componentRef: ComponentRef<any>, navigationContext): void {\n // Component loaded. Find its root native view.\n const componentView = componentRef.location.nativeElement;\n // Remove it from original native parent.\n this.viewUtil.removeChild(componentView.parent, componentView);\n // Add it to the new page\n this.viewUtil.appendChild(page, componentView);\n\n let topActivatedRoute = findTopActivatedRouteNodeForOutlet(this._activatedRoute.snapshot);\n let outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n const thisRouteKey = outletKey;\n while (!this.locationStrategy.findOutlet(outletKey)) {\n topActivatedRoute = topActivatedRoute.parent;\n if (!topActivatedRoute) {\n NativeScriptDebug.routerError('Could not find outlet for route: ' + thisRouteKey);\n break;\n }\n outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n }\n const navigatedFromCallback = zoneWrap((args: NavigatedData) => {\n if (args.isBackNavigation) {\n this.locationStrategy._beginBackPageNavigation(this.frame, outletKey);\n this.locationStrategy.back(null, this.frame);\n }\n });\n // TODO: experiment with using NgZone instead of global above\n // const navigatedFromCallback = (args: NavigatedData) => {\n // \tif (args.isBackNavigation) {\n // this.ngZone.run(() => {\n // this.locationStrategy._beginBackPageNavigation(this.frame);\n // this.locationStrategy.back(null, this.frame);\n // });\n // \t}\n // };\n\n page.on(Page.navigatedFromEvent, navigatedFromCallback);\n componentRef.onDestroy(() => {\n if (page) {\n page.off(Page.navigatedFromEvent, navigatedFromCallback);\n page = null;\n }\n });\n\n const navOptions = {\n ...defaultNavOptions,\n ...(this.router.getCurrentNavigation().extras || {}),\n } as ExtendedNavigationExtras;\n this.locationStrategy._beginPageNavigation(this.frame, navOptions);\n const isReplace = navOptions.replaceUrl && !navOptions.clearHistory;\n\n const currentRoute = this.activatedRoute;\n // Clear refCache if navigation with clearHistory\n if (navOptions.clearHistory) {\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.markCacheForClear(key));\n const wipeCache = callableOnce(() => {\n if (this.postNavFunction === wipeCache) {\n this.postNavFunction = null;\n }\n if (this.outlet && this.activatedRoute === currentRoute) {\n // potential alternative fix (only fix children of the current outlet)\n // const nests = outletKey.split('/');\n // this.outlet.outletKeys.filter((k) => k.split('/').length >= nests.length).forEach((key) => this.routeReuseStrategy.clearCache(key));\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.clearMarkedCache(key));\n }\n });\n this.postNavFunction = wipeCache;\n const clearCallback = () =>\n setTimeout(() => {\n wipeCache();\n });\n\n page.once(Page.navigatedToEvent, clearCallback);\n } else if (navOptions.replaceUrl) {\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.markCacheForPop(key));\n const popCache = callableOnce(() => {\n if (this.postNavFunction === popCache) {\n this.postNavFunction = null;\n }\n if (this.outlet && this.activatedRoute === currentRoute) {\n // potential alternative fix (only fix children of the current outlet)\n // const nests = outletKey.split('/');\n // this.outlet.outletKeys.filter((k) => k.split('/').length >= nests.length).forEach((key) => this.routeReuseStrategy.popCache(key));\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.clearMarkedCache(key));\n }\n });\n this.postNavFunction = popCache;\n const clearCallback = () =>\n setTimeout(() => {\n popCache();\n });\n\n page.once(Page.navigatedToEvent, clearCallback);\n }\n\n const navigationEntry: NavigationEntry = {\n create() {\n return page;\n },\n context: navigationContext,\n clearHistory: navOptions.clearHistory,\n animated: navOptions.animated,\n transition: navOptions.transition,\n };\n\n if (isReplace && this.frame.currentPage) {\n this.frame.replacePage(navigationEntry);\n } else {\n this.frame.navigate(navigationEntry);\n }\n }\n\n // Find and mark the top activated route as an activated one.\n // In ns-location-strategy we are reusing components only if their corresponing routes\n // are marked as activated from this method.\n private markActivatedRoute(activatedRoute: ActivatedRoute) {\n const queue = [];\n queue.push(activatedRoute.snapshot);\n let currentRoute = queue.shift();\n\n while (currentRoute) {\n currentRoute.children.forEach((childRoute) => {\n queue.push(childRoute);\n });\n\n const topActivatedRoute = findTopActivatedRouteNodeForOutlet(currentRoute);\n const outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n const outlet = this.locationStrategy.findOutlet(outletKey, topActivatedRoute);\n\n if (outlet && outlet.frames.length) {\n topActivatedRoute[pageRouterActivatedSymbol] = true;\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Activated route marked as page: ' + routeToString(topActivatedRoute));\n }\n }\n\n currentRoute = queue.shift();\n }\n }\n\n private getComponentType(activatedRoute: ActivatedRoute): Type<any> {\n return activatedRoute.routeConfig.component || activatedRoute.component;\n }\n\n private getOutlet(activatedRouteSnapshot: ActivatedRouteSnapshot): Outlet {\n const topActivatedRoute = findTopActivatedRouteNodeForOutlet(activatedRouteSnapshot);\n const outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n let outlet = this.locationStrategy.findOutlet(outletKey, topActivatedRoute);\n\n // Named lazy loaded outlet.\n if (!outlet && this.isEmptyOutlet) {\n const parentOutletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute.parent);\n outlet = this.locationStrategy.findOutlet(parentOutletKey, topActivatedRoute.parent);\n\n if (outlet) {\n outlet.outletKeys.push(outletKey);\n }\n }\n\n return outlet;\n }\n}\n","import { NSLocationStrategy } from './ns-location-strategy';\nimport { PlatformLocation, LocationChangeListener } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NativeScriptDebug } from '../../trace';\n\n@Injectable()\nexport class NativescriptPlatformLocation extends PlatformLocation {\n readonly hostname: string;\n readonly href: string;\n readonly port: string;\n readonly protocol: string;\n\n constructor(private locationStrategy: NSLocationStrategy) {\n super();\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NativescriptPlatformLocation.constructor()');\n }\n }\n\n getState(): any {\n return undefined;\n }\n\n getBaseHrefFromDOM(): string {\n return '/';\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n this.locationStrategy.onPopState(fn);\n return () => {\n //\n };\n }\n\n onHashChange(_fn: LocationChangeListener): VoidFunction {\n return () => {\n //\n };\n }\n\n get search(): string {\n return '';\n }\n get hash(): string {\n return '';\n }\n get pathname(): string {\n return this.locationStrategy.path();\n }\n set pathname(_newPath: string) {\n throw new Error('NativescriptPlatformLocation set pathname - not implemented');\n }\n\n pushState(state: any, title: string, url: string): void {\n this.locationStrategy.pushState(state, title, url, null);\n }\n\n replaceState(state: any, title: string, url: string): void {\n this.locationStrategy.replaceState(state, title, url, null);\n }\n\n forward(): void {\n throw new Error('NativescriptPlatformLocation.forward() - not implemented');\n }\n\n back(): void {\n this.locationStrategy.back();\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Page } from '@nativescript/core';\nimport { PageRouterOutlet } from './page-router-outlet';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'ns-empty-outlet',\n template: \"<page-router-outlet isEmptyOutlet='true'></page-router-outlet>\",\n imports: [PageRouterOutlet],\n})\nexport class NSEmptyOutletComponent {\n @ViewChild(PageRouterOutlet, { read: PageRouterOutlet, static: false }) pageRouterOutlet: PageRouterOutlet;\n constructor(private page: Page) {\n if (this.page) {\n this.page.actionBarHidden = true;\n\n this.page.on('loaded', () => {\n if (this.pageRouterOutlet && this.page.frame) {\n this.pageRouterOutlet.setActionBarVisibility(this.page.frame.actionBarVisibility);\n }\n });\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n NO_ERRORS_SCHEMA,\n Optional,\n SkipSelf,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport {\n RouterModule,\n Routes,\n ExtraOptions,\n RouteReuseStrategy,\n RouterFeatures,\n ActivatedRoute,\n Router,\n ROUTES,\n provideRouter,\n} from '@angular/router';\nimport { LocationStrategy, PlatformLocation } from '@angular/common';\nimport { NSRouterLink } from './ns-router-link';\nimport { NSRouterLinkActive } from './ns-router-link-active';\nimport { PageRouterOutlet } from './page-router-outlet';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { NativescriptPlatformLocation } from './ns-platform-location';\nimport { NSRouteReuseStrategy } from './ns-route-reuse-strategy';\nimport { RouterExtensions } from './router-extensions';\nimport { FrameService } from '../frame.service';\nimport { NSEmptyOutletComponent } from './ns-empty-outlet.component';\nimport { NativeScriptCommonModule } from '../../nativescript-common.module';\nimport { START_PATH } from '../../tokens';\n\nexport { PageRoute } from './page-router-outlet';\nexport { RouterExtensions } from './router-extensions';\nexport { Outlet, NavigationOptions, LocationState, defaultNavOptions } from './ns-location-utils';\nexport { NSRouterLink } from './ns-router-link';\nexport { NSRouterLinkActive } from './ns-router-link-active';\nexport { PageRouterOutlet } from './page-router-outlet';\nexport { NSLocationStrategy } from './ns-location-strategy';\nexport { NSEmptyOutletComponent } from './ns-empty-outlet.component';\n\nexport function provideLocationStrategy(\n locationStrategy: NSLocationStrategy,\n frameService: FrameService,\n startPath: string,\n): NSLocationStrategy {\n return locationStrategy ? locationStrategy : new NSLocationStrategy(frameService, startPath);\n}\n\nconst ROUTER_COMPONENTS = [NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent];\n\n@NgModule({\n imports: [RouterModule, NativeScriptCommonModule, ...ROUTER_COMPONENTS],\n exports: [RouterModule, ...ROUTER_COMPONENTS],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class NativeScriptRouterModule {\n static forRoot(routes: Routes, config?: ExtraOptions): ModuleWithProviders<NativeScriptRouterModule> {\n return {\n ngModule: NativeScriptRouterModule,\n providers: [\n ...RouterModule.forRoot(routes, config).providers,\n {\n provide: NSLocationStrategy,\n useFactory: provideLocationStrategy,\n deps: [[NSLocationStrategy, new Optional(), new SkipSelf()], FrameService, [new Optional(), START_PATH]],\n },\n { provide: LocationStrategy, useExisting: NSLocationStrategy },\n NativescriptPlatformLocation,\n { provide: PlatformLocation, useExisting: NativescriptPlatformLocation },\n RouterExtensions,\n NSRouteReuseStrategy,\n { provide: RouteReuseStrategy, useExisting: NSRouteReuseStrategy },\n ],\n };\n }\n\n static forChild(routes: Routes): ModuleWithProviders<NativeScriptRouterModule> {\n return { ngModule: NativeScriptRouterModule, providers: RouterModule.forChild(routes).providers };\n }\n}\nexport function rootRoute(router: Router): ActivatedRoute {\n return router.routerState.root;\n}\n\nexport function provideNativeScriptRouter(routes: Routes, ...features: RouterFeatures[]) {\n return makeEnvironmentProviders([\n provideRouter(routes, ...features),\n {\n provide: NSLocationStrategy,\n useFactory: provideLocationStrategy,\n deps: [[NSLocationStrategy, new Optional(), new SkipSelf()], FrameService, [new Optional(), START_PATH]],\n },\n { provide: LocationStrategy, useExisting: NSLocationStrategy },\n NativescriptPlatformLocation,\n { provide: PlatformLocation, useExisting: NativescriptPlatformLocation },\n RouterExtensions,\n NSRouteReuseStrategy,\n { provide: RouteReuseStrategy, useExisting: NSRouteReuseStrategy },\n // {provide: APP_BOOTSTRAP_LISTENER, multi: true, useFactory: getBootstrapListener},\n ]);\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// <reference path=\"../../../../node_modules/zone.js/zone.d.ts\" />\n/// <reference path=\"../../../../node_modules/@nativescript/core/global-types.d.ts\" />\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { EventEmitter, isDevMode, NgZone, NgZoneOptions, ɵinternalProvideZoneChangeDetection } from '@angular/core';\nimport { Utils } from '@nativescript/core';\n\nlet currentRafId = 1;\nfunction noop() {}\n\n/**\n * An injectable service for executing work inside or outside of the Angular zone.\n *\n * The most common use of this service is to optimize performance when starting a work consisting of\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\n * can reenter the Angular zone via {@link #run}.\n *\n * <!-- TODO: add/fix links to:\n * - docs explaining zones and the use of zones in Angular and change-detection\n * - link to runOutsideAngular/run (throughout this file!)\n * -->\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * import {Component, NgZone} from '@angular/core';\n * import {NgIf} from '@angular/common';\n *\n * @Component({\n * selector: 'ng-zone-demo',\n * template: `\n * <h2>Demo: NgZone</h2>\n *\n * <p>Progress: {{progress}}%</p>\n * <p *ngIf=\"progress >= 100\">Done processing {{label}} of Angular zone!</p>\n *\n * <button (click)=\"processWithinAngularZone()\">Process within Angular zone</button>\n * <button (click)=\"processOutsideOfAngularZone()\">Process outside of Angular zone</button>\n * `,\n * })\n * export class NgZoneDemo {\n * progress: number = 0;\n * label: string;\n *\n * constructor(private _ngZone: NgZone) {}\n *\n * // Loop inside the Angular zone\n * // so the UI DOES refresh after each setTimeout cycle\n * processWithinAngularZone() {\n * this.label = 'inside';\n * this.progress = 0;\n * this._increaseProgress(() => console.log('Inside Done!'));\n * }\n *\n * // Loop outside of the Angular zone\n * // so the UI DOES NOT refresh after each setTimeout cycle\n * processOutsideOfAngularZone() {\n * this.label = 'outside';\n * this.progress = 0;\n * this._ngZone.runOutsideAngular(() => {\n * this._increaseProgress(() => {\n * // reenter the Angular zone and display done\n * this._ngZone.run(() => { console.log('Outside Done!'); });\n * });\n * });\n * }\n *\n * _increaseProgress(doneCallback: () => void) {\n * this.progress += 1;\n * console.log(`Current progress: ${this.progress}%`);\n *\n * if (this.progress < 100) {\n * window.setTimeout(() => this._increaseProgress(doneCallback), 10);\n * } else {\n * doneCallback();\n * }\n * }\n * }\n * ```\n *\n * @publicApi\n */\nexport class NativeScriptNgZone implements NgZone {\n readonly hasPendingMacrotasks: boolean = false;\n readonly hasPendingMicrotasks: boolean = false;\n\n /**\n * Whether there are no outstanding microtasks or macrotasks.\n */\n readonly isStable: boolean = true;\n\n /**\n * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\n */\n readonly onUnstable: EventEmitter<any> = new EventEmitter(false);\n\n /**\n * Notifies when there is no more microtasks enqueued in the current VM Turn.\n * This is a hint for Angular to do change detection, which may enqueue more microtasks.\n * For this reason this event can fire multiple times per VM Turn.\n */\n readonly onMicrotaskEmpty: EventEmitter<any> = new EventEmitter(false);\n\n /**\n * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\n * implies we are about to relinquish VM turn.\n * This event gets called just once.\n */\n readonly onStable: EventEmitter<any> = new EventEmitter(false);\n\n /**\n * Notifies that an error has been delivered.\n */\n readonly onError: EventEmitter<any> = new EventEmitter(false);\n\n constructor({\n enableLongStackTrace = isDevMode(),\n shouldCoalesceEventChangeDetection = true,\n shouldCoalesceRunChangeDetection = true,\n } = {}) {\n if (typeof Zone == 'undefined') {\n throw new Error(`In this configuration Angular requires Zone.js`);\n }\n\n Zone.assertZonePatched();\n const self = this as any as NgZonePrivate;\n self._nesting = 0;\n\n self._outer = self._inner = Zone.current;\n\n if ((Zone as any)['TaskTrackingZoneSpec']) {\n self._inner = self._inner.fork(new ((Zone as any)['TaskTrackingZoneSpec'] as any)());\n }\n\n if (enableLongStackTrace && (Zone as any)['longStackTraceZoneSpec']) {\n self._inner = self._inner.fork((Zone as any)['longStackTraceZoneSpec']);\n }\n // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be\n // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.\n self.shouldCoalesceEventChangeDetection = !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;\n self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;\n self.lastRequestAnimationFrameId = -1;\n self.nativeRequestAnimationFrame = function (cb) {\n const nativeDispatchToMainThread = Utils[Zone.__symbol__('dispatchToMainThread')] || Utils.dispatchToMainThread;\n nativeDispatchToMainThread(cb);\n return currentRafId++;\n };\n forkInnerZoneWithAngularBehavior(self);\n }\n\n static isInAngularZone(): boolean {\n return Zone.current.get('isAngularZone') === true;\n }\n\n static assertInAngularZone(): void {\n if (!NgZone.isInAngularZone()) {\n throw new Error('Expected to be in Angular Zone, but it is not!');\n }\n }\n\n static assertNotInAngularZone(): void {\n if (NgZone.isInAngularZone()) {\n throw new Error('Expected to not be in Angular Zone, but it is!');\n }\n }\n\n /**\n * Executes the `fn` function synchronously within the Angular zone and returns value returned by\n * the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n run<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n return (this as any as NgZonePrivate)._inner.run(fn, applyThis, applyArgs);\n }\n\n /**\n * Executes the `fn` function synchronously within the Angular zone as a task and returns value\n * returned by the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n runTask<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T {\n const zone = (this as any as NgZonePrivate)._inner;\n const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);\n try {\n return zone.runTask(task, applyThis, applyArgs);\n } finally {\n zone.cancelTask(task);\n }\n }\n\n /**\n * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\n * rethrown.\n */\n runGuarded<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n return (this as any as NgZonePrivate)._inner.runGuarded(fn, applyThis, applyArgs);\n }\n\n /**\n * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\n * the function.\n *\n * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\n * work that\n * doesn't trigger Angular change-detection or is subject to Angular's error handling.\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * outside of the Angular zone.\n *\n * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\n */\n runOutsideAngular<T>(fn: (...args: any[]) => T): T {\n return (this as any as NgZonePrivate)._outer.run(fn);\n }\n}\n\nconst EMPTY_PAYLOAD = {};\n\ninterface NgZonePrivate extends NgZone {\n _outer: Zone;\n _inner: Zone;\n _nesting: number;\n _hasPendingMicrotasks: boolean;\n\n hasPendingMacrotasks: boolean;\n hasPendingMicrotasks: boolean;\n lastRequestAnimationFrameId: number;\n /**\n * A flag to indicate if NgZone is currently inside\n * checkStable and to prevent re-entry. The flag is\n * needed because it is possible to invoke the change\n * detection from within change detection leading to\n * incorrect behavior.\n *\n * For detail, please refer here,\n * https://github.com/angular/angular/pull/40540\n */\n isCheckStableRunning: boolean;\n isStable: boolean;\n /**\n * Optionally specify coalescing event change detections or not.\n * Consider the following case.\n *\n * <div (click)=\"doSomething()\">\n * <button (click)=\"doSomethingElse()\"></button>\n * </div>\n *\n * When button is clicked, because of the event bubbling, both\n * event handlers will be called and 2 change detections will be\n * triggered. We can coalesce such kind of events to trigger\n * change detection only once.\n *\n * By default, this option will be false. So the events will not be\n * coalesced and the change detection will be triggered multiple times.\n * And if this option be set to true, the change detection will be\n * triggered async by scheduling it in an animation frame. So in the case above,\n * the change detection will only be trigged once.\n */\n shouldCoalesceEventChangeDetection: boolean;\n /**\n * Optionally specify if `NgZone#run()` method invocations should be coalesced\n * into a single change detection.\n *\n * Consider the following case.\n *\n * for (let i = 0; i < 10; i ++) {\n * ngZone.run(() => {\n * // do something\n * });\n * }\n *\n * This case triggers the change detection multiple times.\n * With ngZoneRunCoalescing options, all change detections in an event loops trigger only once.\n * In addition, the change detection executes in requestAnimation.\n *\n */\n shouldCoalesceRunChangeDetection: boolean;\n\n nativeRequestAnimationFrame: (callback: FrameRequestCallback) => number;\n\n // Cache a \"fake\" top eventTask so you don't need to schedule a new task every\n // time you run a `checkStable`.\n fakeTopEventTask: Task;\n}\n\nfunction checkStable(zone: NgZonePrivate) {\n // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent\n // re-entry. The case is:\n //\n // @Component({...})\n // export class AppComponent {\n // constructor(private ngZone: NgZone) {\n // this.ngZone.onStable.subscribe(() => {\n // this.ngZone.run(() => console.log('stable'););\n // });\n // }\n //\n // The onStable subscriber run another function inside ngZone\n // which causes `checkStable()` re-entry.\n // But this fix causes some issues in g3, so this fix will be\n // launched in another PR.\n if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {\n try {\n zone._nesting++;\n zone.onMicrotaskEmpty.emit(null);\n } finally {\n zone._nesting--;\n if (!zone.hasPendingMicrotasks) {\n try {\n zone.runOutsideAngular(() => zone.onStable.emit(null));\n } finally {\n zone.isStable = true;\n }\n }\n }\n }\n}\n\nfunction delayChangeDetectionForEvents(zone: NgZonePrivate) {\n /**\n * We also need to check _nesting here\n * Consider the following case with shouldCoalesceRunChangeDetection = true\n *\n * ngZone.run(() => {});\n * ngZone.run(() => {});\n *\n * We want the two `ngZone.run()` only trigger one change detection\n * when shouldCoalesceRunChangeDetection is true.\n * And because in this case, change detection run in async way(requestAnimationFrame),\n * so we also need to check the _nesting here to prevent multiple\n * change detections.\n */\n if (zone.isCheckStableRunning || zone.lastRequestAnimationFrameId !== -1) {\n return;\n }\n zone.lastRequestAnimationFrameId = zone.nativeRequestAnimationFrame.call(global, () => {\n // This is a work around for https://github.com/angular/angular/issues/36839.\n // The core issue is that when event coalescing is enabled it is possible for microtasks\n // to get flushed too early (As is the case with `Promise.then`) between the\n // coalescing eventTasks.\n //\n // To workaround this we schedule a \"fake\" eventTask before we process the\n // coalescing eventTasks. The benefit of this is that the \"fake\" container eventTask\n // will prevent the microtasks queue from getting drained in between the coalescing\n // eventTask execution.\n if (!zone.fakeTopEventTask) {\n zone.fakeTopEventTask = Zone.root.scheduleEventTask(\n 'fakeTopEventTask',\n () => {\n zone.lastRequestAnimationFrameId = -1;\n updateMicroTaskStatus(zone);\n zone.isCheckStableRunning = true;\n checkStable(zone);\n zone.isCheckStableRunning = false;\n },\n undefined,\n () => {},\n () => {},\n );\n }\n zone.fakeTopEventTask.invoke();\n });\n updateMicroTaskStatus(zone);\n}\n\nfunction forkInnerZoneWithAngularBehavior(zone: NgZonePrivate) {\n const delayChangeDetectionForEventsDelegate = () => {\n delayChangeDetectionForEvents(zone);\n };\n zone._inner = zone._inner.fork({\n name: 'angular',\n properties: <any>{ isAngularZone: true },\n onInvokeTask: (\n delegate: ZoneDelegate,\n current: Zone,\n target: Zone,\n task: Task,\n applyThis: any,\n applyArgs: any,\n ): any => {\n try {\n onEnter(zone);\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n } finally {\n if (\n (zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||\n zone.shouldCoalesceRunChangeDetection ||\n !Utils.isMainThread()\n ) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n\n onInvoke: (\n delegate: ZoneDelegate,\n current: Zone,\n target: Zone,\n callback: Function,\n applyThis: any,\n applyArgs?: any[],\n source?: string,\n ): any => {\n try {\n onEnter(zone);\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n } finally {\n if (zone.shouldCoalesceRunChangeDetection || !Utils.isMainThread()) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n\n onHasTask: (delegate: ZoneDelegate, current: Zone, target: Zone, hasTaskState: HasTaskState) => {\n delegate.hasTask(target, hasTaskState);\n if (current === target) {\n // We are only interested in hasTask events which originate from our zone\n // (A child hasTask event is not interesting to us)\n if (hasTaskState.change == 'microTask') {\n zone._hasPendingMicrotasks = hasTaskState.microTask;\n updateMicroTaskStatus(zone);\n checkStable(zone);\n } else if (hasTaskState.change == 'macroTask') {\n zone.hasPendingMacrotasks = hasTaskState.macroTask;\n }\n }\n },\n\n onHandleError: (delegate: ZoneDelegate, current: Zone, target: Zone, error: any): boolean => {\n delegate.handleError(target, error);\n zone.runOutsideAngular(() => zone.onError.emit(error));\n return false;\n },\n });\n}\n\nfunction updateMicroTaskStatus(zone: NgZonePrivate) {\n if (zone._hasPendingMicrotasks || zone.lastRequestAnimationFrameId !== -1) {\n zone.hasPendingMicrotasks = true;\n } else {\n zone.hasPendingMicrotasks = false;\n }\n}\n\nfunction onEnter(zone: NgZonePrivate) {\n zone._nesting++;\n if (zone.isStable) {\n zone.isStable = false;\n zone.onUnstable.emit(null);\n }\n}\n\nfunction onLeave(zone: NgZonePrivate) {\n zone._nesting--;\n checkStable(zone);\n}\n\nfunction getNgZoneOptions(options?: NgZoneOptions) {\n return {\n enableLongStackTrace: typeof ngDevMode === 'undefined' ? false : !!ngDevMode,\n shouldCoalesceEventChangeDetection: options?.eventCoalescing ?? true,\n shouldCoalesceRunChangeDetection: options?.runCoalescing ?? true,\n };\n}\n\nexport function provideNativeScriptNgZone(options?: NgZoneOptions) {\n const scheduleInRootZone = (options as any)?.scheduleInRootZone;\n return ɵinternalProvideZoneChangeDetection({\n ngZoneFactory: () => new NativeScriptNgZone(getNgZoneOptions(options)),\n scheduleInRootZone,\n });\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"../references.d.ts\" />\nexport * from './lib/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NSLocationStrategy","INJECTOR_SCOPE","NullViewportScroller","ɵinternalCreateApplication","AnimationEngine","i1","AnimationRendererFactory","WebAnimationsStyleNormalizer","BrowserAnimationBuilder","AnimationStyleNormalizer","Observable","i2.NSFileSystem","i2.NSLocationStrategy","i3.FrameService","i2.RouterExtensions","ɵinternalProvideZoneChangeDetection"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"nativescript-angular.mjs","sources":["../../../../packages/angular/src/lib/views/invisible-nodes.ts","../../../../packages/angular/src/lib/views/utils.ts","../../../../packages/angular/src/lib/tokens.ts","../../../../packages/angular/src/lib/property-filter.ts","../../../../packages/angular/src/lib/view-refs.ts","../../../../packages/angular/src/lib/app-host-view.ts","../../../../packages/angular/src/lib/loading.service.ts","../../../../packages/angular/src/lib/trace.ts","../../../../packages/angular/src/lib/application.ts","../../../../packages/angular/src/lib/platform-ref.ts","../../../../packages/angular/src/lib/nativescript-xhr-factory.ts","../../../../packages/angular/src/lib/element-registry/metas.ts","../../../../packages/angular/src/lib/element-registry/registry.ts","../../../../packages/angular/src/lib/element-registry/common-views.ts","../../../../packages/angular/src/lib/view-util.ts","../../../../packages/angular/src/lib/nativescript-renderer.ts","../../../../packages/angular/src/lib/cdk/portal/portal-errors.ts","../../../../packages/angular/src/lib/cdk/portal/common.ts","../../../../packages/angular/src/lib/cdk/portal/portal-directives.ts","../../../../packages/angular/src/lib/cdk/portal/nsdom-portal-outlet.ts","../../../../packages/angular/src/lib/cdk/detached-loader.ts","../../../../packages/angular/src/lib/cdk/frame-page/page.service.ts","../../../../packages/angular/src/lib/cdk/frame-page/frame-page.component.ts","../../../../packages/angular/src/lib/cdk/frame-page/frame.directive.ts","../../../../packages/angular/src/lib/cdk/frame-page/page.directive.ts","../../../../packages/angular/src/lib/cdk/frame-page/frame-page.module.ts","../../../../packages/angular/src/lib/utils/lang-facade.ts","../../../../packages/angular/src/lib/cdk/action-bar/index.ts","../../../../packages/angular/src/lib/utils/general.ts","../../../../packages/angular/src/lib/cdk/list-view/list-view.component.ts","../../../../packages/angular/src/lib/legacy/frame.service.ts","../../../../packages/angular/src/lib/legacy/router/ns-location-utils.ts","../../../../packages/angular/src/lib/legacy/router/ns-location-strategy.ts","../../../../packages/angular/src/lib/legacy/directives/dialogs.ts","../../../../packages/angular/src/lib/utils/ng-safe.ts","../../../../packages/angular/src/lib/cdk/tab-view/index.ts","../../../../packages/angular/src/lib/cdk/platform-filters/android-filter.component.ts","../../../../packages/angular/src/lib/cdk/platform-filters/ios-filter.component.ts","../../../../packages/angular/src/lib/cdk/platform-filters/apple-filter.component.ts","../../../../packages/angular/src/lib/cdk/platform-filters/vision-filter.component.ts","../../../../packages/angular/src/lib/nativescript-common.module.ts","../../../../packages/angular/src/lib/nativescript.ts","../../../../packages/angular/src/lib/platform-nativescript.ts","../../../../packages/angular/src/lib/rootcomposite.module.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-config.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-ref.ts","../../../../packages/angular/src/lib/cdk/dialog/native-modal-ref.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-services.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-content-directives.ts","../../../../packages/angular/src/lib/cdk/dialog/dialog-module.ts","../../../../packages/angular/src/lib/file-system/ns-file-system.ts","../../../../packages/angular/src/lib/detached-loader-utils.ts","../../../../packages/angular/src/lib/forms/value-accessors/base-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/text-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/checked-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/date-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/time-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/number-value-accessor.ts","../../../../packages/angular/src/lib/forms/value-accessors/selectedIndex-value-accessor.ts","../../../../packages/angular/src/lib/forms/forms.module.ts","../../../../packages/angular/src/lib/animations/utils.ts","../../../../packages/angular/src/lib/animations/animation-player.ts","../../../../packages/angular/src/lib/animations/animation-driver.ts","../../../../packages/angular/src/lib/animations/animations.module.ts","../../../../packages/angular/src/lib/http/http-utils.ts","../../../../packages/angular/src/lib/http/ns-http-backend.ts","../../../../packages/angular/src/lib/http/http-client.module.ts","../../../../packages/angular/src/lib/legacy/router/page-router-outlet-utils.ts","../../../../packages/angular/src/lib/legacy/router/ns-route-reuse-strategy.ts","../../../../packages/angular/src/lib/legacy/router/router-extensions.ts","../../../../packages/angular/src/lib/legacy/router/ns-router-link.ts","../../../../packages/angular/src/lib/legacy/router/private-imports/router-url-tree.ts","../../../../packages/angular/src/lib/legacy/router/ns-router-link-active.ts","../../../../packages/angular/src/lib/legacy/router/page-router-outlet.ts","../../../../packages/angular/src/lib/legacy/router/ns-platform-location.ts","../../../../packages/angular/src/lib/legacy/router/ns-empty-outlet.component.ts","../../../../packages/angular/src/lib/legacy/router/router.module.ts","../../../../packages/angular/src/lib/nativescript-ng-zone.ts","../../../../packages/angular/src/index.ts","../../../../packages/angular/src/nativescript-angular.ts"],"sourcesContent":["import { View } from '@nativescript/core';\nimport { NgView } from './view-types';\n\nconst getClassName = (instance) => instance.constructor.name;\n\nexport abstract class InvisibleNode extends View implements NgView {\n meta: { skipAddToDom: boolean };\n nodeType: number;\n nodeName: string;\n // @ts-expect-error setter\n parentNode: NgView;\n nextSibling: NgView;\n previousSibling: NgView;\n firstChild: NgView;\n lastChild: NgView;\n ngCssClasses: Map<string, boolean>;\n\n constructor(protected name: string = '') {\n super();\n\n this.nodeType = 1;\n this.nodeName = getClassName(this);\n }\n\n toString() {\n return `${this.nodeName}(${this.id})-${this.name}`;\n }\n}\n\nexport class CommentNode extends InvisibleNode {\n protected static id = 0;\n\n constructor(value?: string) {\n super(value);\n\n this.meta = {\n skipAddToDom: true,\n };\n this.id = CommentNode.id.toString();\n CommentNode.id += 1;\n }\n}\n\nexport class TextNode extends InvisibleNode {\n public static textChangeEvent = 'textChange';\n protected static id = 0;\n protected _text = '';\n get text() {\n return this._text;\n }\n set text(t: string) {\n this._text = t;\n this.notify({ eventName: TextNode.textChangeEvent, object: this, value: t });\n }\n callbackMap = new Map<unknown, Array<(evt: any) => void>>();\n\n constructor(value?: string) {\n super(value);\n this._text = value;\n\n this.meta = {\n skipAddToDom: true,\n };\n this.id = TextNode.id.toString();\n TextNode.id += 1;\n }\n\n registerTextChange(callback: (text: string) => void, id: unknown) {\n const cb = (evt) => callback(evt.value);\n const cbArr = this.callbackMap.get(id) || [];\n cbArr.push(cb);\n this.callbackMap.set(id, cbArr);\n this.on('textChange', cb);\n }\n\n unregisterTextChange(id: unknown) {\n const cbArr = this.callbackMap.get(id) || [];\n cbArr.forEach((cb) => this.off('textChange', cb));\n this.callbackMap.delete(id);\n }\n}\n","import { ContentView, LayoutBase, ProxyViewContainer, View, ViewBase } from '@nativescript/core';\nimport { InvisibleNode } from './invisible-nodes';\nimport type { NgContentView, NgLayoutBase, NgView } from './view-types';\n\nexport function isDetachedElement(element: View | NgView): boolean {\n return element && (<NgView>element).meta && (<NgView>element).meta.skipAddToDom;\n}\n\nexport function isView(view: unknown): view is NgView {\n return view instanceof View;\n}\n\nexport function isInvisibleNode(view: unknown): view is InvisibleNode {\n return view instanceof InvisibleNode;\n}\n\nexport function isLayout(view: unknown): view is NgLayoutBase {\n return view instanceof LayoutBase;\n}\n\nexport function isContentView(view: unknown): view is NgContentView {\n return view instanceof ContentView;\n}\n\nexport function getFirstNativeLikeView(view: View, extractFromNSParent = false) {\n if (view instanceof ProxyViewContainer) {\n if (view.getChildrenCount() === 0) {\n return null;\n }\n return getFirstNativeLikeView(view.getChildAt(0));\n }\n\n if (extractFromNSParent) {\n const node = view.parentNode;\n detachViewFromParent(view);\n view.parentNode = node;\n }\n return view;\n}\n\nexport function detachViewFromParent(view: View) {\n const parent = <NgView>view?.parent;\n if (!parent) {\n return;\n }\n if (parent.meta && parent.meta.removeChild) {\n parent.meta.removeChild(parent, view);\n } else if (isLayout(parent)) {\n parent.removeChild(view);\n } else if (isContentView(parent) && parent.content === view) {\n parent.content = null;\n } else if (isView(parent)) {\n parent._removeView(view);\n }\n}\n","import { InjectionToken } from '@angular/core';\nimport { IDevice, Page, View } from '@nativescript/core';\n\nexport const APP_ROOT_VIEW = new InjectionToken<View>('NativeScriptAppRootView');\nexport const NATIVESCRIPT_ROOT_MODULE_ID = new InjectionToken<string | number>('NativeScriptRootModuleId');\n\nexport const START_PATH = new InjectionToken<Promise<string> | string>('NativeScriptStartPath');\nexport const ENABLE_REUSABE_VIEWS = new InjectionToken<boolean>('NativeScriptEnableReusableViews');\n\nexport type PageFactory = (options: PageFactoryOptions) => Page;\nexport interface PageFactoryOptions {\n isBootstrap?: boolean;\n isLivesync?: boolean;\n isModal?: boolean;\n isNavigation?: boolean;\n componentType?: any;\n}\n\nexport const DISABLE_ROOT_VIEW_HANDLING = new InjectionToken<boolean>('NativeScriptDisableRootViewHandling');\nexport const DEVICE = new InjectionToken<IDevice>('NativeScriptDevice');\nexport const PAGE_FACTORY = new InjectionToken<PageFactory>('NativeScriptPageFactory');\nexport const defaultPageFactory: PageFactory = function (_opts: PageFactoryOptions) {\n return new Page();\n};\n\nexport const PREVENT_CHANGE_EVENTS_DURING_CD = new InjectionToken<boolean>('NativeScriptPreventChangeEventsDuringCd');\nexport const PREVENT_SPECIFIC_EVENTS_DURING_CD = new InjectionToken<string[]>('NativeScriptPreventSpecificEventsDuringCd');\n","import { Inject, InjectionToken } from '@angular/core';\nimport { DEVICE } from './tokens';\nimport { Device, platformNames } from '@nativescript/core';\n\nexport interface NamespaceFilter {\n runsIn(namespace: string, next: (namespace: string) => boolean | undefined): boolean | undefined;\n}\n\nexport class PlatformNamespaceFilter implements NamespaceFilter {\n constructor(@Inject(DEVICE) private device: typeof Device) {}\n runsIn(namespace: string, next: (namespace: string) => boolean | undefined): boolean | undefined {\n if (namespace === 'android') {\n return this.device.os === platformNames.android;\n }\n if (namespace === 'ios') {\n return this.device.os === platformNames.ios;\n }\n return next(namespace);\n }\n}\n\nexport const NAMESPACE_FILTERS = new InjectionToken<NamespaceFilter[]>('NativeScriptNamespaceFilter');\n","import { ComponentRef, EmbeddedViewRef } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { detachViewFromParent, getFirstNativeLikeView, InvisibleNode } from './views';\n\nexport interface NgViewRef<T> {\n view: View;\n ref: EmbeddedViewRef<T> | ComponentRef<T>;\n firstNativeLikeView: View;\n}\n\nexport interface NgViewTemplate<T> {\n create(context?: T): View;\n update(view: View, context?: T): void;\n attach(view: View): void;\n detach(view: View): void;\n dispose(view: View): void;\n}\n\nexport class NgViewRef<T> implements NgViewRef<T> {\n /**\n * Component's view instance or first valid template view\n */\n view: View;\n ref: EmbeddedViewRef<T> | ComponentRef<T>;\n /**\n * First valid view that isn't strictly logical (ContentView, ProxyViewContainer, ...)\n * This view *very* likely has a nativeView associated to it.\n */\n firstNativeLikeView: View;\n\n constructor(ref: EmbeddedViewRef<T> | ComponentRef<T>) {\n this.ref = ref;\n this.view = ref instanceof ComponentRef ? ref.location.nativeElement : ref.rootNodes.find((v) => !(v instanceof InvisibleNode));\n this.firstNativeLikeView = getFirstNativeLikeView(this.view);\n }\n\n detachNativeLikeView() {\n detachViewFromParent(this.firstNativeLikeView);\n }\n}\n","import { ContentView, View, ProxyViewContainer, GridLayout, Color, Application } from '@nativescript/core';\n\nexport class AppHostView extends ContentView {\n private _ngAppRoot: View;\n private _content: View;\n private timeout: any = -1;\n\n constructor(backgroundColor: Color) {\n super();\n this.backgroundColor = backgroundColor;\n }\n\n get ngAppRoot(): View {\n return this._ngAppRoot;\n }\n\n set ngAppRoot(value: View) {\n this._ngAppRoot = value;\n }\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n //@ts-ignore\n get content(): View {\n return this._content;\n }\n\n set content(value: View) {\n if (this._content) {\n this._content.parentNode = undefined;\n }\n\n this._content = value;\n\n if (value) {\n this._content.parentNode = this;\n }\n\n this.ngAppRoot = value;\n\n if (this._content instanceof ProxyViewContainer) {\n const grid = new GridLayout();\n grid.backgroundColor = this.backgroundColor;\n grid.addChild(this._content);\n this.ngAppRoot = grid;\n }\n if (this.ngAppRoot) {\n // maybe use this approach\n // this.scheduleRootChange();\n }\n }\n\n scheduleRootChange() {\n if (this.timeout === -1) {\n this.timeout = setTimeout(() => {\n //console.log(this.ngAppRoot);\n Application.resetRootView({\n create: () => this.content,\n });\n this.timeout = -1;\n }, 0);\n }\n }\n}\n\nexport class AppHostAsyncView extends GridLayout {\n constructor(backgroundColor: Color) {\n super();\n this.backgroundColor = backgroundColor;\n }\n\n get ngAppRoot(): View {\n return this;\n }\n\n set ngAppRoot(value: View) {\n // ignored\n }\n}\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { filter } from 'rxjs/operators';\n\n@Injectable({ providedIn: 'root' })\nexport class NativeScriptLoadingService implements OnDestroy {\n private mainModuleReady$ = new BehaviorSubject(false);\n readyToDestroy$ = new BehaviorSubject(true);\n onMainModuleReady$ = this.mainModuleReady$.pipe(filter((ready) => ready));\n\n /**\n * delays destroying this module until `notifyReadyToDestroy()`.\n * remember to call `notifyReadyToDestroy()` when done!\n */\n waitUntilNotified() {\n this.readyToDestroy$.next(false);\n }\n\n /**\n * notifies this module is ready to be destroyed\n */\n notifyReadyToDestroy() {\n this.readyToDestroy$.next(true);\n }\n isMainModuleReady() {\n return this.mainModuleReady$.value;\n }\n ngOnDestroy() {\n this.readyToDestroy$.complete();\n this.mainModuleReady$.complete();\n }\n\n /**\n * This funcion is called by the bootstrap code when the app is ready\n * @internal\n */\n _notifyMainModuleReady() {\n this.mainModuleReady$.next(true);\n }\n}\n","import { Trace } from '@nativescript/core';\n\nexport class NativeScriptDebug {\n static readonly animationsTraceCategory = 'ns-animations';\n static readonly rendererTraceCategory = 'ns-renderer';\n static readonly viewUtilCategory = 'ns-view-util';\n static readonly routerTraceCategory = 'ns-router';\n static readonly routeReuseStrategyTraceCategory = 'ns-route-reuse-strategy';\n static readonly listViewTraceCategory = 'ns-list-view';\n static readonly bootstrapCategory = 'bootstrap';\n // TODO: migrate all usage to this - avoids extraneous method executions\n static readonly enabled = Trace.isEnabled();\n\n static isLogEnabled() {\n return Trace.isEnabled();\n }\n\n static animationsLog(message: string): void {\n Trace.write(message, NativeScriptDebug.animationsTraceCategory);\n }\n\n static rendererLog(msg): void {\n Trace.write(msg, NativeScriptDebug.rendererTraceCategory);\n }\n\n static rendererError(message: string): void {\n Trace.write(message, NativeScriptDebug.rendererTraceCategory, Trace.messageType.error);\n }\n\n static viewUtilLog(msg): void {\n Trace.write(msg, NativeScriptDebug.viewUtilCategory);\n }\n\n static routerLog(message: string): void {\n Trace.write(message, NativeScriptDebug.routerTraceCategory);\n }\n\n static routerError(message: string): void {\n Trace.write(message, NativeScriptDebug.routerTraceCategory, Trace.messageType.error);\n }\n\n static routeReuseStrategyLog(message: string): void {\n Trace.write(message, NativeScriptDebug.routeReuseStrategyTraceCategory);\n }\n\n static styleError(message: string): void {\n Trace.write(message, Trace.categories.Style, Trace.messageType.error);\n }\n\n static listViewLog(message: string): void {\n Trace.write(message, NativeScriptDebug.listViewTraceCategory);\n }\n\n static listViewError(message: string): void {\n Trace.write(message, NativeScriptDebug.listViewTraceCategory, Trace.messageType.error);\n }\n\n static bootstrapLog(message: string): void {\n Trace.write(message, NativeScriptDebug.bootstrapCategory);\n }\n\n static bootstrapLogError(message: string): void {\n Trace.write(message, NativeScriptDebug.bootstrapCategory, Trace.messageType.error);\n }\n}\n","import { ApplicationRef, EnvironmentProviders, NgModuleRef, NgZone, PlatformRef, Provider } from '@angular/core';\nimport {\n Application,\n ApplicationEventData,\n Color,\n LaunchEventData,\n LayoutBase,\n profile,\n removeTaggedAdditionalCSS,\n TextView,\n Utils,\n View,\n} from '@nativescript/core';\nimport { Observable, Subject } from 'rxjs';\nimport { filter, map, take } from 'rxjs/operators';\nimport { AppHostView } from './app-host-view';\nimport { NativeScriptLoadingService } from './loading.service';\nimport { APP_ROOT_VIEW, DISABLE_ROOT_VIEW_HANDLING, NATIVESCRIPT_ROOT_MODULE_ID } from './tokens';\nimport { NativeScriptDebug } from './trace';\n\nexport interface AppLaunchView extends LayoutBase {\n // called when the animation is to begin\n startAnimation?: () => void;\n // called when bootstrap is complete and cleanup can begin\n // should resolve when animation is completely finished\n cleanup?: () => Promise<any>;\n\n // do you want to handle setting this as a rootview manually?\n __disable_root_view_handling?: boolean;\n}\n\nexport function disableRootViewHanding(view: AppLaunchView) {\n view.__disable_root_view_handling = true;\n}\n\nexport type NgModuleReason = 'hotreload' | 'applaunch' | 'appexit';\n\nexport type NgModuleEvent =\n | {\n moduleType: 'main' | 'loading' | string;\n reference: NgModuleRef<unknown> | ApplicationRef;\n reason: NgModuleReason | string;\n }\n | {\n moduleType: 'platform';\n reference: PlatformRef;\n reason: NgModuleReason | string;\n };\n\nexport const preAngularDisposal$ = new Subject<NgModuleEvent>();\nexport const postAngularBootstrap$ = new Subject<NgModuleEvent>();\n\n/**\n * @deprecated\n */\nexport const onBeforeLivesync: Observable<NgModuleRef<any>> = preAngularDisposal$.pipe(\n filter((v) => v.moduleType === 'main' && v.reason === 'hotreload'),\n map((v) => v.reference as NgModuleRef<any>),\n);\n/**\n * @deprecated\n */\nexport const onAfterLivesync: Observable<{\n moduleRef?: NgModuleRef<any>;\n error?: Error;\n}> = postAngularBootstrap$.pipe(\n filter((v) => v.moduleType === 'main'),\n map((v) => ({ moduleRef: v.reference as NgModuleRef<any> })),\n);\nexport interface AppRunOptions<T, K> {\n /**\n * Runs when the app is launched or during HMR.\n * May not run immediately if the app was started in background (e.g. push notification)\n * @param reason reason for bootstrap. @see {NgModuleReason}\n * @returns Promise to the bootstrapped NgModuleRef\n */\n appModuleBootstrap: (reason: NgModuleReason) => Promise<NgModuleRef<T> | ApplicationRef>;\n /**\n * Loads a custom NgModule for the loading screen.\n * This loads only if appModuleBootstrap doesn't resolve synchronously (e.g. async APP_INITIALIZER).\n * @param reason reason for bootstrap. @see {NgModuleReason}\n * @returns Promise to the bootstrapped NgModuleRef. Must resolve immediately (no async initialization)\n */\n loadingModule?: (reason: NgModuleReason) => Promise<NgModuleRef<K> | ApplicationRef>;\n /**\n * Simpler than loadingModule, this will show a view while the app is bootstrapping asynchronously.\n * @param reason reason for bootstrap. @see {NgModuleReason}\n * @returns View that will be shown while app boots\n */\n launchView?: (reason: NgModuleReason) => AppLaunchView;\n /**\n * Wether we are running in an embedded context (e.g. embedding NativeScript in an existing app)\n */\n embedded?: boolean;\n}\n\nif (import.meta['webpackHot']) {\n import.meta['webpackHot'].decline();\n global.__onLiveSyncCore = () => {\n Application.getRootView()?._onCssStateChange();\n // all other changes are applied by runNativeScriptAngularApp\n };\n}\n\nfunction emitModuleBootstrapEvent<T>(\n ref: NgModuleRef<T> | ApplicationRef,\n name: 'main' | 'loading',\n reason: NgModuleReason,\n) {\n postAngularBootstrap$.next({\n moduleType: name,\n reference: ref,\n reason,\n });\n}\n\nfunction destroyRef<T>(ref: NgModuleRef<T> | ApplicationRef, name: 'main' | 'loading', reason: NgModuleReason): void;\nfunction destroyRef(ref: PlatformRef, reason: NgModuleReason): void;\nfunction destroyRef<T>(ref: PlatformRef | ApplicationRef | NgModuleRef<T>, name?: string, reason?: string): void {\n if (ref) {\n if (ref instanceof PlatformRef) {\n preAngularDisposal$.next({\n moduleType: 'platform',\n reference: ref,\n reason: name,\n });\n }\n if (ref instanceof NgModuleRef || ref instanceof ApplicationRef) {\n preAngularDisposal$.next({\n moduleType: name,\n reference: ref,\n reason,\n });\n }\n ref.destroy();\n }\n}\n\nfunction runZoneSyncTask(fn: () => void) {\n if (typeof Zone === 'undefined') {\n return;\n }\n const zone = Zone.current;\n const task = zone.scheduleEventTask(\n 'sync_function',\n fn,\n {},\n () => {\n //\n },\n () => {\n //\n },\n );\n try {\n // console.log(task.state);\n task.invoke();\n // zone.runTask(task);\n // console.log(task.state);\n } finally {\n zone.cancelTask(task);\n }\n}\n\nfunction ZoneCanWorkSync() {\n let canRunSync = false;\n runZoneSyncTask(() => {\n Promise.resolve().then(() => (canRunSync = true));\n });\n return canRunSync;\n}\n\n/**\n * Tests if global.__drainMicrotaskQueue can be used to drain microtasks\n * Because of Zone.js, even though the native queue might be drained, zone microtasks might not be\n * @param makeTestDrain should it drain the current microtask queue to ensure the queue can be drained\n * @returns if global.__drainMicrotaskQueue can be called\n */\nfunction nativeQueueCanBeDrained(makeTestDrain: boolean) {\n if (typeof (global as any).__drainMicrotaskQueue !== 'function') {\n return false;\n }\n if (!makeTestDrain) {\n return true;\n }\n let canRunSync = false;\n Promise.resolve().then(() => (canRunSync = true));\n (global as any).__drainMicrotaskQueue();\n return canRunSync;\n}\n\n/**\n * Runs a function in the most synchronous way possible\n * @param fn function to run\n * @param done function to chain after done\n */\nfunction runSynchronously(fn: () => void, done?: () => void): void {\n if (typeof Zone !== 'undefined' && ZoneCanWorkSync()) {\n runZoneSyncTask(fn);\n done?.();\n return;\n }\n if (nativeQueueCanBeDrained(true)) {\n fn();\n (global as any).__drainMicrotaskQueue();\n done?.();\n return;\n }\n fn();\n if (done) {\n Utils.queueMacrotask(done);\n }\n}\n\nexport interface ApplicationConfig {\n /**\n * List of providers that should be available to the root component and all its children.\n */\n providers: Array<Provider | EnvironmentProviders>;\n}\n\nexport function runNativeScriptAngularApp<T, K>(options: AppRunOptions<T, K>) {\n let mainModuleRef: NgModuleRef<T> | ApplicationRef = null;\n let loadingModuleRef: NgModuleRef<K> | ApplicationRef;\n let platformRef: PlatformRef = null;\n let bootstrapId = -1;\n const updatePlatformRef = (moduleRef: NgModuleRef<T | K> | ApplicationRef, reason: NgModuleReason) => {\n const newPlatformRef = moduleRef.injector.get(PlatformRef);\n if (newPlatformRef === platformRef) {\n return;\n }\n destroyRef(platformRef, reason);\n platformRef = newPlatformRef;\n platformRef.onDestroy(() => (platformRef = platformRef === newPlatformRef ? null : platformRef));\n };\n let launchEventDone = true;\n let targetRootView: View = null;\n const setRootView = (ref: NgModuleRef<T | K> | ApplicationRef | View) => {\n if (bootstrapId === -1) {\n // treat edge cases\n return;\n }\n if (ref instanceof NgModuleRef || ref instanceof ApplicationRef) {\n if (ref.injector.get(DISABLE_ROOT_VIEW_HANDLING, false)) {\n return;\n }\n } else {\n if (ref['__disable_root_view_handling']) {\n return;\n }\n }\n Application.getRootView()?._closeAllModalViewsInternal(); // cleanup old rootview\n NativeScriptDebug.bootstrapLog(`Setting RootView ${launchEventDone ? 'outside of' : 'during'} launch event`);\n // TODO: check for leaks when root view isn't properly destroyed\n if (ref instanceof View) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.bootstrapLog(`Setting RootView to ${ref}`);\n }\n if (options.embedded) {\n Application.run({ create: () => ref });\n } else if (launchEventDone) {\n Application.resetRootView({ create: () => ref });\n } else {\n targetRootView = ref;\n }\n return;\n }\n const view = ref.injector.get(APP_ROOT_VIEW) as AppHostView | View;\n const newRoot = view instanceof AppHostView ? view.content : view;\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.bootstrapLog(`Setting RootView to ${newRoot}`);\n }\n if (options.embedded) {\n Application.run({ create: () => newRoot });\n } else if (launchEventDone) {\n Application.resetRootView({ create: () => newRoot });\n } else {\n targetRootView = newRoot;\n }\n };\n const showErrorUI = (error: Error) => {\n const message = error.message + '\\n\\n' + error.stack;\n const errorTextBox = new TextView();\n errorTextBox.text = message;\n errorTextBox.color = new Color('red');\n setRootView(errorTextBox);\n };\n const bootstrapRoot = (reason: NgModuleReason) => {\n try {\n bootstrapId = Date.now();\n const currentBootstrapId = bootstrapId;\n let bootstrapped = false;\n let onMainBootstrap = () => {\n setRootView(mainModuleRef);\n };\n runSynchronously(\n () =>\n options.appModuleBootstrap(reason).then(\n (ref) => {\n if (currentBootstrapId !== bootstrapId) {\n // this module is old and not needed anymore\n // this may happen when developer uses async app initializer and the user exits the app before this bootstraps\n ref.destroy();\n return;\n }\n mainModuleRef = ref;\n\n (ref instanceof ApplicationRef ? ref.components[0] : ref).onDestroy(\n () => (mainModuleRef = mainModuleRef === ref ? null : mainModuleRef),\n );\n updatePlatformRef(ref, reason);\n const styleTag = ref.injector.get(NATIVESCRIPT_ROOT_MODULE_ID);\n (ref instanceof ApplicationRef ? ref.components[0] : ref).onDestroy(() => {\n removeTaggedAdditionalCSS(styleTag);\n });\n bootstrapped = true;\n onMainBootstrap();\n emitModuleBootstrapEvent(ref, 'main', reason);\n // bootstrapped component: (ref as any)._bootstrapComponents[0];\n },\n (err) => {\n bootstrapped = true;\n NativeScriptDebug.bootstrapLogError(`Error bootstrapping app module:\\n${err.message}\\n\\n${err.stack}`);\n showErrorUI(err);\n throw err;\n },\n ),\n () => {\n if (currentBootstrapId !== bootstrapId) {\n return;\n }\n if (!bootstrapped) {\n if (options.loadingModule) {\n runSynchronously(() =>\n options.loadingModule(reason).then(\n (loadingRef) => {\n if (currentBootstrapId !== bootstrapId) {\n // this module is old and not needed anymore\n // this may happen when developer uses async app initializer and the user exits the app before this bootstraps\n loadingRef.destroy();\n return;\n }\n loadingModuleRef = loadingRef;\n (loadingModuleRef instanceof ApplicationRef\n ? loadingModuleRef.components[0]\n : loadingModuleRef\n ).onDestroy(() => (loadingModuleRef = loadingModuleRef === loadingRef ? null : loadingModuleRef));\n updatePlatformRef(loadingRef, reason);\n const styleTag = loadingModuleRef.injector.get(NATIVESCRIPT_ROOT_MODULE_ID);\n (loadingModuleRef instanceof ApplicationRef\n ? loadingModuleRef.components[0]\n : loadingModuleRef\n ).onDestroy(() => {\n removeTaggedAdditionalCSS(styleTag);\n });\n setRootView(loadingRef);\n onMainBootstrap = () => {\n // delay showing the new rootview to avoid flashes\n Utils.queueMacrotask(() => {\n const loadingService = loadingModuleRef.injector.get(NativeScriptLoadingService);\n loadingModuleRef.injector.get(NgZone).run(() => {\n loadingService._notifyMainModuleReady();\n });\n loadingService.readyToDestroy$\n .pipe(\n filter((ready) => ready),\n take(1),\n )\n .subscribe(() => {\n destroyRef(loadingModuleRef, 'loading', reason);\n loadingModuleRef = null;\n setRootView(mainModuleRef);\n });\n });\n };\n emitModuleBootstrapEvent(loadingModuleRef, 'loading', reason);\n },\n (err) => {\n NativeScriptDebug.bootstrapLogError(\n `Error bootstrapping loading module:\\n${err.message}\\n\\n${err.stack}`,\n );\n showErrorUI(err);\n throw err;\n },\n ),\n );\n } else if (options.launchView) {\n let launchView = options.launchView(reason);\n setRootView(launchView);\n if (launchView.startAnimation) {\n setTimeout(() => {\n // ensure launch animation is executed after launchView added to view stack\n launchView.startAnimation();\n });\n }\n onMainBootstrap = () => {\n // delay showing the new rootview to avoid flashes\n Utils.queueMacrotask(() => {\n if (launchView.cleanup) {\n launchView\n .cleanup()\n .catch()\n .then(() => {\n launchView = null;\n setRootView(mainModuleRef);\n });\n } else {\n launchView = null;\n setRootView(mainModuleRef);\n }\n });\n };\n } else {\n console.warn(\n 'App is bootstrapping asynchronously (likely APP_INITIALIZER) but did not provide a launchView or LoadingModule.',\n );\n }\n }\n },\n );\n } catch (err) {\n NativeScriptDebug.bootstrapLogError(`Error in Bootstrap Function:\\n${err.message}\\n\\n${err.stack}`);\n }\n };\n const disposePlatform = (reason: NgModuleReason) => {\n destroyRef(platformRef, reason);\n platformRef = null;\n };\n const disposeLastModules = (reason: NgModuleReason) => {\n // reset bootstrap ID to make sure any modules bootstrapped after this are discarded\n bootstrapId = -1;\n destroyRef(loadingModuleRef, 'loading', reason);\n loadingModuleRef = null;\n destroyRef(mainModuleRef, 'main', reason);\n mainModuleRef = null;\n };\n const launchCallback = profile('@nativescript/angular/platform-common.launchCallback', (args: LaunchEventData) => {\n launchEventDone = false;\n bootstrapRoot('applaunch');\n launchEventDone = true;\n args.root = targetRootView || null;\n });\n const exitCallback = profile('@nativescript/angular/platform-common.exitCallback', (args: ApplicationEventData) => {\n disposeLastModules('appexit');\n });\n\n let oldAddEventListener;\n if (typeof Zone !== 'undefined' && global.NativeScriptGlobals?.events?.[Zone.__symbol__('addEventListener')]) {\n oldAddEventListener = global.NativeScriptGlobals.events.addEventListener;\n global.NativeScriptGlobals.events.addEventListener =\n global.NativeScriptGlobals.events[Zone.__symbol__('addEventListener')];\n }\n if (!options.embedded) {\n Application.on(Application.launchEvent, launchCallback);\n }\n Application.on(Application.exitEvent, exitCallback);\n if (oldAddEventListener) {\n global.NativeScriptGlobals.events.addEventListener = oldAddEventListener;\n }\n if (import.meta['webpackHot']) {\n // handle HMR Application.run\n global['__dispose_app_ng_platform__'] = () => {\n disposePlatform('hotreload');\n };\n global['__dispose_app_ng_modules__'] = () => {\n disposeLastModules('hotreload');\n };\n global['__bootstrap_app_ng_modules__'] = () => {\n bootstrapRoot('hotreload');\n };\n global['__cleanup_ng_hot__'] = () => {\n Application.off(Application.launchEvent, launchCallback);\n Application.off(Application.exitEvent, exitCallback);\n disposeLastModules('hotreload');\n disposePlatform('hotreload');\n };\n global['__reboot_ng_modules__'] = (shouldDisposePlatform: boolean = false) => {\n disposeLastModules('hotreload');\n if (shouldDisposePlatform) {\n disposePlatform('hotreload');\n }\n bootstrapRoot('hotreload');\n };\n\n if (!Application.hasLaunched()) {\n Application.run();\n return;\n }\n bootstrapRoot('hotreload');\n return;\n }\n\n if (options.embedded) {\n bootstrapRoot('applaunch');\n } else {\n Application.run();\n }\n}\n","import { CompilerOptions, Injector, NgModuleRef, NgZone, PlatformRef, Type } from '@angular/core';\nimport { ɵNgModuleFactory as NgModuleFactory } from '@angular/core';\nimport { AppLaunchView, AppRunOptions, runNativeScriptAngularApp } from './application';\n\n/**\n * Provides additional options to the bootstraping process.\n *\n *\n */\nexport interface BootstrapOptions {\n /**\n * Optionally specify which `NgZone` should be used.\n *\n * - Provide your own `NgZone` instance.\n * - `zone.js` - Use default `NgZone` which requires `Zone.js`.\n * - `noop` - Use `NoopNgZone` which does nothing.\n */\n ngZone?: NgZone | 'zone.js' | 'noop';\n /**\n * Optionally specify coalescing event change detections or not.\n * Consider the following case.\n *\n * <div (click)=\"doSomething()\">\n * <button (click)=\"doSomethingElse()\"></button>\n * </div>\n *\n * When button is clicked, because of the event bubbling, both\n * event handlers will be called and 2 change detections will be\n * triggered. We can colesce such kind of events to only trigger\n * change detection only once.\n *\n * By default, this option will be false. So the events will not be\n * coalesced and the change detection will be triggered multiple times.\n * And if this option be set to true, the change detection will be\n * triggered async by scheduling a animation frame. So in the case above,\n * the change detection will only be triggered once.\n */\n ngZoneEventCoalescing?: boolean;\n /**\n * Optionally specify if `NgZone#run()` method invocations should be coalesced\n * into a single change detection.\n *\n * Consider the following case.\n *\n * for (let i = 0; i < 10; i ++) {\n * ngZone.run(() => {\n * // do something\n * });\n * }\n *\n * This case triggers the change detection multiple times.\n * With ngZoneRunCoalescing options, all change detections in an event loop trigger only once.\n * In addition, the change detection executes in requestAnimation.\n *\n */\n ngZoneRunCoalescing?: boolean;\n}\n\nexport class NativeScriptPlatformRefProxy extends PlatformRef {\n options: AppRunOptions<any, any>;\n constructor(private platform: PlatformRef, private launchView?: AppLaunchView) {\n super();\n }\n\n bootstrapModuleFactory<M>(moduleFactory: NgModuleFactory<M>): Promise<NgModuleRef<M>> {\n this.options = {\n appModuleBootstrap: () => this.platform.bootstrapModuleFactory(moduleFactory),\n launchView: () => this.launchView,\n };\n\n runNativeScriptAngularApp(this.options);\n\n return null;\n }\n bootstrapModule<M>(moduleType: Type<M>, compilerOptions?: (CompilerOptions & BootstrapOptions) | Array<CompilerOptions & BootstrapOptions>): Promise<NgModuleRef<M>> {\n this.options = {\n appModuleBootstrap: () => this.platform.bootstrapModule(moduleType, compilerOptions),\n };\n\n runNativeScriptAngularApp(this.options);\n\n return null;\n }\n\n onDestroy(callback: () => void): void {\n this.platform.onDestroy(callback);\n }\n\n get injector(): Injector {\n return this.platform.injector;\n }\n\n destroy(): void {\n this.platform.destroy();\n }\n\n get destroyed(): boolean {\n return this.platform.destroyed;\n }\n}\n","import { XhrFactory } from '@angular/common';\nimport { Injectable } from '@angular/core';\n\n@Injectable()\nexport class NativescriptXhrFactory extends XhrFactory {\n build() {\n return new XMLHttpRequest();\n }\n}\n","import { FormattedString, Frame, Page, Span, TextBase } from '@nativescript/core';\nimport { isInvisibleNode } from '../views/utils';\nimport { NgView, ViewClassMeta } from '../views/view-types';\n\nexport const frameMeta: ViewClassMeta = {\n insertChild: (parent: Frame, child: NgView) => {\n // Page cannot be added to Frame with _addChildFromBuilder (thwos \"use defaultPage\" error)\n if (isInvisibleNode(child)) {\n return;\n } else if (child instanceof Page) {\n parent.navigate({ create: () => child });\n } else {\n throw new Error('Only a Page can be a child of Frame');\n }\n },\n};\n\nexport const formattedStringMeta: ViewClassMeta = {\n insertChild(parent: FormattedString, child: Span, next: Span) {\n const index = parent.spans.indexOf(next);\n if (index > -1) {\n parent.spans.splice(index, 0, child);\n } else {\n parent.spans.push(child);\n }\n },\n removeChild(parent: FormattedString, child: Span) {\n const index = parent.spans.indexOf(child);\n if (index > -1) {\n parent.spans.splice(index, 1);\n }\n },\n};\n\nexport const textBaseMeta: ViewClassMeta = {\n insertChild(parent: TextBase, child, next) {\n if (child instanceof FormattedString) {\n parent.formattedText = child;\n } else if (child instanceof Span) {\n parent.formattedText ??= new FormattedString();\n formattedStringMeta.insertChild(parent.formattedText, child, next);\n }\n },\n removeChild(parent: TextBase, child: NgView) {\n if (!parent.formattedText) return;\n if (child instanceof FormattedString) {\n if (parent.formattedText === child) {\n parent.formattedText = null;\n }\n } else if (child instanceof Span) {\n formattedStringMeta.removeChild(parent.formattedText, child);\n }\n },\n};\n","import { LayoutBase, View } from '@nativescript/core';\nimport { InvisibleNode } from '../views/invisible-nodes';\nimport { ViewClassMeta } from '../views/view-types';\n\nexport type ViewResolver = () => any;\n\nexport const elementMap = new Map<string, { resolver: ViewResolver; meta?: ViewClassMeta }>();\nconst camelCaseSplit = /([a-z0-9])([A-Z])/g;\nconst defaultViewMeta: ViewClassMeta = { skipAddToDom: false };\n\nexport function registerElement(elementName: string, resolver: ViewResolver, meta?: ViewClassMeta): void {\n const entry = { resolver, meta };\n elementMap.set(elementName, entry);\n elementMap.set(elementName.toLowerCase(), entry);\n elementMap.set(elementName.replace(camelCaseSplit, '$1-$2').toLowerCase(), entry);\n}\n\nexport function getViewClass(elementName: string): any {\n const entry = elementMap.get(elementName) || elementMap.get(elementName.toLowerCase());\n if (!entry) {\n throw new TypeError(`No known component for element ${elementName}.`);\n }\n\n try {\n return entry.resolver();\n } catch (e) {\n throw new TypeError(`Could not load view for: ${elementName}.${e}`);\n }\n}\n\nexport function getViewMeta(nodeName: string): ViewClassMeta {\n const entry = elementMap.get(nodeName) || elementMap.get(nodeName.toLowerCase());\n return (entry && entry.meta) || defaultViewMeta;\n}\n\nexport function isKnownView(elementName: string): boolean {\n return elementMap.has(elementName) || elementMap.has(elementName.toLowerCase());\n}\n\nexport function extractSingleViewRecursive(nodes: Array<any>, nestLevel: number): View {\n const actualNodes = nodes.filter((node) => !(node instanceof InvisibleNode));\n\n if (actualNodes.length === 0) {\n throw new Error(`No suitable views found in list template! ` + `Nesting level: ${nestLevel}`);\n } else if (actualNodes.length > 1) {\n throw new Error(`More than one view found in list template!` + `Nesting level: ${nestLevel}`);\n }\n\n const rootLayout = actualNodes[0];\n if (!rootLayout) {\n return extractSingleViewRecursive(rootLayout.children, nestLevel + 1);\n }\n\n const parentLayout = rootLayout.parent;\n if (parentLayout instanceof LayoutBase) {\n const node = rootLayout.parentNode;\n parentLayout.removeChild(rootLayout);\n rootLayout.parentNode = node;\n }\n\n return rootLayout;\n}\n\n/**\n * @deprecated getSingleViewRecursive is deprecated, use extractSingleViewRecursive\n */\nexport function getSingleViewRecursive(nodes: Array<any>, nestLevel: number): View {\n return extractSingleViewRecursive(nodes, nestLevel);\n}\n","import { AbsoluteLayout, ActivityIndicator, Button, ContentView, DatePicker, DockLayout, FlexboxLayout, FormattedString, Frame, GridLayout, HtmlView, Image, Label, ListPicker, ListView, Page, Placeholder, Progress, ProxyViewContainer, Repeater, RootLayout, ScrollView, SearchBar, SegmentedBar, SegmentedBarItem, Slider, Span, StackLayout, Switch, TabView, TextField, TextView, TimePicker, WebView, WrapLayout } from '@nativescript/core';\nimport { formattedStringMeta, frameMeta, textBaseMeta } from './metas';\nimport { registerElement } from './registry';\n\n// Register default NativeScript components\n// Note: ActionBar related components are registerd together with action-bar directives.\nexport function registerNativeScriptViewComponents() {\n if (!(<any>global).__ngRegisteredViews) {\n (<any>global).__ngRegisteredViews = true;\n registerElement('AbsoluteLayout', () => AbsoluteLayout);\n registerElement('ActivityIndicator', () => ActivityIndicator);\n registerElement('Button', () => Button, textBaseMeta);\n registerElement('ContentView', () => ContentView);\n registerElement('DatePicker', () => DatePicker);\n registerElement('DockLayout', () => DockLayout);\n registerElement('Frame', () => Frame, frameMeta);\n registerElement('GridLayout', () => GridLayout);\n registerElement('HtmlView', () => HtmlView);\n registerElement('Image', () => Image);\n // Parse5 changes <Image> tags to <img>. WTF!\n registerElement('img', () => Image);\n registerElement('Label', () => Label, textBaseMeta);\n registerElement('ListPicker', () => ListPicker);\n registerElement('ListView', () => ListView);\n registerElement('Page', () => Page);\n registerElement('Placeholder', () => Placeholder);\n registerElement('Progress', () => Progress);\n registerElement('ProxyViewContainer', () => ProxyViewContainer);\n registerElement('Repeater', () => Repeater);\n registerElement('RootLayout', () => RootLayout);\n registerElement('ScrollView', () => ScrollView);\n registerElement('SearchBar', () => SearchBar);\n registerElement('SegmentedBar', () => SegmentedBar);\n registerElement('SegmentedBarItem', () => SegmentedBarItem);\n registerElement('Slider', () => Slider);\n registerElement('StackLayout', () => StackLayout);\n registerElement('FlexboxLayout', () => FlexboxLayout);\n registerElement('Switch', () => Switch);\n registerElement('TabView', () => TabView);\n registerElement('TextField', () => TextField, textBaseMeta);\n registerElement('TextView', () => TextView, textBaseMeta);\n registerElement('TimePicker', () => TimePicker);\n registerElement('WebView', () => WebView);\n registerElement('WrapLayout', () => WrapLayout);\n registerElement('FormattedString', () => FormattedString, formattedStringMeta);\n registerElement('Span', () => Span);\n }\n}\n","import { unsetValue, View } from '@nativescript/core';\nimport { getViewClass, getViewMeta, isKnownView } from './element-registry';\nimport { NamespaceFilter } from './property-filter';\nimport {\n CommentNode,\n isContentView,\n isDetachedElement,\n isInvisibleNode,\n isLayout,\n isView,\n NgView,\n TextNode,\n} from './views';\n\nimport { NativeScriptDebug } from './trace';\nimport { NgLayoutBase } from './views/view-types';\n\n// Note: this utility exists from deep core import however results in\n// Module not found: Error: Can't resolve '@nativescript/core/ui/core/properties'\nfunction isCssVariable(property: string) {\n return /^--[^,\\s]+?$/.test(property);\n}\n\nconst ELEMENT_NODE_TYPE = 1;\nconst XML_ATTRIBUTES = Object.freeze(['style', 'rows', 'columns', 'fontAttributes']);\nconst whiteSpaceSplitter = /\\s+/;\n\nexport type BeforeAttachAction = (view: View) => void;\n\nfunction printNgTree(view: NgView) {\n let parent = view;\n while (parent.parent && (parent.parent as NgView).firstChild) {\n parent = parent.parent as NgView;\n }\n printChildrenRecurse(parent);\n}\nfunction printChildrenRecurse(parent: NgView) {\n const children = parent.firstChild ? [parent.firstChild, ...getChildrenSiblings(parent.firstChild).nextSiblings] : [];\n console.log(\n `parent: ${parent}, firstChild: ${parent.firstChild}, lastChild: ${parent.lastChild} children: ${children}`,\n );\n if (parent.firstChild) {\n console.log(`----- start ${parent}`);\n }\n children.forEach((c) => printChildrenRecurse(c));\n if (parent.firstChild) {\n console.log(`----- end ${parent}`);\n }\n}\n\nfunction getChildrenSiblings(view: NgView) {\n const nextSiblings = [];\n const previousSiblings = [];\n let sibling = view.nextSibling;\n while (sibling) {\n nextSiblings.push(sibling);\n sibling = sibling.nextSibling;\n }\n sibling = view.previousSibling;\n while (sibling) {\n previousSiblings.push(sibling);\n sibling = sibling.previousSibling;\n }\n return {\n previousSiblings,\n nextSiblings,\n };\n}\n\nfunction printSiblingsTree(view: NgView) {\n const { previousSiblings, nextSiblings } = getChildrenSiblings(view);\n console.log(`${view} previousSiblings: ${previousSiblings} nextSiblings: ${nextSiblings}`);\n}\n\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nconst propertyMaps: Map<Function, Map<string, string>> = new Map<Function, Map<string, string>>();\n\nexport class ViewUtil {\n constructor(\n private namespaceFilters?: NamespaceFilter[],\n private reuseViews?: boolean,\n ) {}\n /**\n * Inserts a child into a parrent, preferably before next.\n * @param parent parent view\n * @param child child view to be added\n * @param previous previous element. If present, insert after this.\n * @param next next element. If present, insert before this (previous is ignored).\n */\n private insertChild(parent: View, child: View, previous?: NgView, next?: NgView) {\n if (!parent) {\n return;\n }\n\n const extendedParent = this.ensureNgViewExtensions(parent);\n const extendedChild = this.ensureNgViewExtensions(child);\n\n // this should never enter, as angular is supposed to remove the child from the previous parent before calling this\n // but when angular animations are enabled, the removal might be delayed, so we need to ensure this view is not anywhere\n // this seems to only happens to CommentNodes\n if (extendedChild.parentNode) {\n this.removeChild(extendedChild.parentNode, extendedChild);\n }\n // if there's a next child, previous is the previousSibling of it\n if (next) {\n previous = next.previousSibling;\n } else if (previous) {\n // if there's a previous, next is the nextSibling of it\n next = previous.nextSibling;\n } else {\n // no previous or next, append to the parent\n previous = extendedParent.lastChild; // this can still be undefined if the parent has no children!\n }\n this.insertInList(extendedParent, extendedChild, previous, next);\n\n if (isDetachedElement(child) || isInvisibleNode(child)) {\n extendedChild.parentNode = extendedParent;\n }\n\n if (!isDetachedElement(child)) {\n const nextVisual = this.findNextVisual(next);\n this.addToVisualTree(extendedParent, extendedChild, nextVisual);\n } else if (isInvisibleNode(extendedChild)) {\n const nextVisual = this.findNextVisual(next);\n this.addInvisibleNode(extendedParent, extendedChild, nextVisual);\n }\n // printNgTree(extendedChild);\n }\n\n public insertBefore(parent: View, child: View, refChild?: View | NgView) {\n const extendedRef = refChild ? this.ensureNgViewExtensions(refChild) : undefined;\n this.insertChild(parent, child, undefined, extendedRef);\n }\n public insertAfter(parent: View, child: View, refChild?: View | NgView) {\n const extendedRef = refChild ? this.ensureNgViewExtensions(refChild) : undefined;\n this.insertChild(parent, child, extendedRef);\n }\n\n public appendChild(parent: View, child: View) {\n this.insertChild(parent, child);\n }\n\n /**\n * Inserts a view into the parent/sibling linked list\n * !WARNING: this method makes no checks to validate the integrity of previous/next children\n * @param parent parent view\n * @param child child view\n * @param previous previous element. null/undefined for first element\n * @param next next element. null/undefined for last element\n */\n private insertInList(parent: NgView, child: NgView, previous: NgView, next: NgView): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(\n `ViewUtil.insertInList parent: ${parent}, view: ${child}, ` + `previous: ${previous}, next: ${next}`,\n );\n }\n\n if (previous) {\n previous.nextSibling = child;\n child.previousSibling = previous;\n } else {\n parent.firstChild = child;\n }\n\n if (next) {\n child.nextSibling = next;\n next.previousSibling = child;\n } else {\n parent.lastChild = child;\n }\n }\n\n private addToVisualTree(parent: NgView, child: NgView, next: NgView): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.addToVisualTree parent: ${parent}, view: ${child}, next: ${next}`);\n }\n\n if (parent.meta && parent.meta.insertChild) {\n parent.meta.insertChild(parent, child, next);\n } else if (isLayout(parent)) {\n this.insertToLayout(parent, child, next);\n } else if (isContentView(parent)) {\n parent.content = child;\n } else if (parent && (<any>parent)._addChildFromBuilder) {\n (<any>parent)._addChildFromBuilder(child.nodeName, child);\n }\n }\n\n private addInvisibleNode(parent: NgView, child: NgView, next: NgView): void {\n if (parent.meta?.insertInvisibleNode) {\n parent.meta.insertInvisibleNode(parent, child, next);\n } else {\n if (child instanceof TextNode) {\n (parent as any).text = child.text;\n child.registerTextChange((t) => ((parent as any).text = t), parent);\n }\n }\n }\n\n private insertToLayout(parent: NgLayoutBase, child: NgView, next: NgView): void {\n if (child.parent === parent) {\n this.removeLayoutChild(parent, child);\n }\n\n const nextVisual = this.findNextVisual(next);\n if (nextVisual) {\n const index = parent.getChildIndex(nextVisual);\n parent.insertChild(child, index);\n } else {\n parent.addChild(child);\n }\n // parent.eachChild((c) => {console.log(c); return true});\n }\n\n private findNextVisual(view: NgView): NgView {\n let next = view;\n while (next && isDetachedElement(next)) {\n next = next.nextSibling;\n }\n\n return next;\n }\n\n public removeChild(parent: View, child: View) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeChild parent: ${parent} child: ${child}`);\n }\n\n if (!parent) {\n return;\n }\n\n const extendedParent = this.ensureNgViewExtensions(parent);\n const extendedChild = this.ensureNgViewExtensions(child);\n extendedChild.parentNode = null;\n\n this.removeFromList(extendedParent, extendedChild);\n if (!isDetachedElement(extendedChild)) {\n this.removeFromVisualTree(extendedParent, extendedChild);\n } else if (isInvisibleNode(extendedChild)) {\n this.removeInvisibleNode(extendedParent, extendedChild);\n }\n }\n\n private removeFromList(parent: NgView, child: NgView) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeFromList parent: ${parent} child: ${child}`);\n }\n\n // only child. null everything\n if (parent.firstChild === child && parent.lastChild === child) {\n parent.firstChild = null;\n parent.lastChild = null;\n child.nextSibling = null;\n child.previousSibling = null;\n return;\n }\n\n const previous = child.previousSibling;\n const next = child.nextSibling;\n // is first child, make the next sibling the first child (can be null)\n if (parent.firstChild === child) {\n parent.firstChild = next;\n }\n\n // is last child, make the previous sibling the last child (can be null)\n if (parent.lastChild === child) {\n parent.lastChild = previous;\n }\n\n // we have a previous sibling, make it point to the next sibling\n if (previous) {\n previous.nextSibling = next;\n }\n\n // we have a next sibling, make it point to the previous\n if (next) {\n next.previousSibling = previous;\n }\n\n // finally, null the siblings\n child.nextSibling = null;\n child.previousSibling = null;\n }\n\n // NOTE: This one is O(n) - use carefully\n private findPreviousElement(parent: NgView, child: NgView): NgView {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.findPreviousElement parent: ${parent} child: ${child}`);\n }\n\n let previousVisual;\n if (isLayout(parent)) {\n previousVisual = this.getPreviousVisualElement(parent, child);\n }\n\n let previous = previousVisual || parent.firstChild;\n\n // since detached elements are not added to the visual tree,\n // we need to find the actual previous sibling of the view,\n // which may as well be an invisible node\n while (previous && previous !== child && previous.nextSibling !== child) {\n previous = previous.nextSibling;\n }\n\n return previous;\n }\n\n private getPreviousVisualElement(parent: NgLayoutBase, child: NgView): NgView {\n const elementIndex = parent.getChildIndex(child);\n\n if (elementIndex > 0) {\n return parent.getChildAt(elementIndex - 1) as NgView;\n }\n }\n\n // NOTE: This one is O(n) - use carefully\n public getChildIndex(parent: any, child: NgView) {\n if (isLayout(parent)) {\n return parent.getChildIndex(child);\n } else if (isContentView(parent)) {\n return child === parent.content ? 0 : -1;\n }\n }\n\n private removeFromVisualTree(parent: NgView, child: NgView) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeFromVisualTree parent: ${parent} child: ${child}`);\n }\n\n if (parent.meta && parent.meta.removeChild) {\n parent.meta.removeChild(parent, child);\n } else if (isLayout(parent)) {\n this.removeLayoutChild(parent, child);\n } else if (isContentView(parent) && parent.content === child) {\n parent.content = null;\n } else if (isView(parent)) {\n parent._removeView(child);\n }\n }\n\n private removeInvisibleNode(parent: NgView, child: NgView) {\n if (parent.meta?.removeInvisibleNode) {\n parent.meta.removeInvisibleNode(parent, child);\n } else {\n if (child instanceof TextNode) {\n child.unregisterTextChange(parent);\n }\n }\n }\n\n private removeLayoutChild(parent: NgLayoutBase, child: NgView): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`ViewUtil.removeLayoutChild parent: ${parent} child: ${child}`);\n }\n\n const index = parent.getChildIndex(child);\n\n if (index !== -1) {\n parent.removeChild(child);\n }\n }\n\n public createComment(value: string): CommentNode {\n return new CommentNode(value);\n }\n\n public createText(value: string): TextNode {\n return new TextNode(value);\n }\n\n public createView(name: string): NgView {\n const originalName = name;\n if (!isKnownView(name)) {\n name = 'ProxyViewContainer';\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Creating view: ${originalName} ${name}`);\n }\n\n const viewClass = getViewClass(name);\n const view = <NgView>new viewClass();\n const ngView = this.setNgViewExtensions(view, name);\n ngView.reusable = !!this.reuseViews;\n\n return ngView;\n }\n\n private ensureNgViewExtensions(view: View): NgView {\n if (Object.hasOwnProperty.call(view, 'meta')) {\n return view as NgView;\n } else {\n const name = view.cssType || view.typeName;\n const ngView = this.setNgViewExtensions(view, name);\n\n return ngView;\n }\n }\n\n private setNgViewExtensions(view: View, name: string): NgView {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Make into a NgView view: ${view} name: \"${name}\"`);\n }\n\n const ngView = view as NgView;\n ngView.nodeName = name;\n ngView.meta = getViewMeta(name);\n\n // we're setting the node type of the view\n // to 'element' because of checks done in the\n // dom animation engine\n ngView.nodeType = ELEMENT_NODE_TYPE;\n\n return ngView;\n }\n\n public setProperty(view: NgView, attributeName: string, value: any, namespace?: string): void {\n if (!view || (namespace && !this.runsIn(namespace))) {\n return;\n }\n\n if (attributeName.indexOf('.') !== -1) {\n // Handle nested properties\n const properties = attributeName.split('.');\n attributeName = properties[properties.length - 1];\n\n let propMap = this.getProperties(view);\n let i = 0;\n while (i < properties.length - 1 && typeof view !== 'undefined') {\n let prop = properties[i];\n if (propMap.has(prop)) {\n prop = propMap.get(prop);\n }\n\n view = view[prop];\n propMap = this.getProperties(view);\n i++;\n }\n }\n\n if (typeof view !== 'undefined') {\n this.setPropertyInternal(view, attributeName, value);\n }\n }\n\n private runsIn(platform: string): boolean {\n let runs = true;\n const last = () => true;\n if (this.namespaceFilters) {\n let chain = (p: string) => true;\n for (let i = this.namespaceFilters.length - 1; i >= 0; i--) {\n const currentChain = chain;\n chain = (p) => this.namespaceFilters[i].runsIn(p, currentChain);\n }\n runs = chain(platform);\n runs = runs !== false ? true : false; // undefined means true\n // this.namespaceFilters.some((filter) => {\n // \tconst runsInFilter = filter.runsIn(platform);\n // \tif (runsInFilter !== undefined) {\n // \t\truns = runsInFilter;\n // \t\treturn true;\n // \t}\n // });\n }\n return runs;\n }\n\n private setPropertyInternal(view: NgView, attributeName: string, value: any): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Setting attribute: ${attributeName}=${value} to ${view}`);\n }\n\n if (attributeName === 'class') {\n this.setClasses(view, value);\n return;\n }\n\n if (XML_ATTRIBUTES.indexOf(attributeName) !== -1) {\n view[attributeName] = value;\n return;\n }\n\n const propMap = this.getProperties(view);\n const propertyName = propMap.get(attributeName);\n\n // Ensure the children of a collection currently have no parent set.\n if (Array.isArray(value)) {\n this.removeParentReferencesFromItems(value);\n }\n\n if (propertyName) {\n // We have a lower-upper case mapped property.\n view[propertyName] = value;\n return;\n }\n\n // Unknown attribute value -- just set it to our object as is.\n view[attributeName] = value;\n }\n\n private removeParentReferencesFromItems(items: any[]): void {\n for (const item of items) {\n if (item.parent && item.parentNode) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.viewUtilLog(`Unassigning parent ${item.parentNode} on value: ${item}`);\n }\n item.parent = undefined;\n item.parentNode = undefined;\n }\n }\n }\n\n private getProperties(instance: any): Map<string, string> {\n const type = instance && instance.constructor;\n if (!type) {\n return new Map<string, string>();\n }\n\n if (!propertyMaps.has(type)) {\n const propMap = new Map<string, string>();\n for (const propName in instance) {\n // tslint:disable:forin\n propMap.set(propName.toLowerCase(), propName);\n }\n propertyMaps.set(type, propMap);\n }\n\n return propertyMaps.get(type);\n }\n\n private cssClasses(view: NgView) {\n if (!view.ngCssClasses) {\n view.ngCssClasses = new Map<string, boolean>();\n }\n return view.ngCssClasses;\n }\n\n public addClass(view: View | NgView, className: string): void {\n const extendedView = this.ensureNgViewExtensions(view);\n this.cssClasses(extendedView).set(className, true);\n this.syncClasses(extendedView);\n }\n\n public removeClass(view: View, className: string): void {\n const extendedView = this.ensureNgViewExtensions(view);\n this.cssClasses(extendedView).delete(className);\n this.syncClasses(extendedView);\n }\n\n private setClasses(view: NgView, classesValue: string): void {\n const classes = classesValue.split(whiteSpaceSplitter);\n this.cssClasses(view).clear();\n classes.forEach((className) => this.cssClasses(view).set(className, true));\n this.syncClasses(view);\n }\n\n private syncClasses(view: NgView): void {\n const classValue = (<any>Array).from(this.cssClasses(view).keys()).join(' ');\n view.className = classValue;\n }\n\n public setStyle(view: View, styleName: string, value: any) {\n if (isCssVariable(styleName)) {\n view.style.setUnscopedCssVariable(styleName, value);\n view._onCssStateChange();\n } else {\n view.style[styleName] = value;\n }\n }\n\n public removeStyle(view: View, styleName: string) {\n if (isCssVariable(styleName)) {\n // TODO: expose this on core\n (view.style as any).unscopedCssVariables.delete(styleName);\n view._onCssStateChange();\n } else {\n view.style[styleName] = unsetValue;\n }\n }\n}\n","import { Inject, Injectable, Injector, NgZone, Optional, Renderer2, RendererFactory2, RendererStyleFlags2, RendererType2, ViewEncapsulation, inject, runInInjectionContext } from '@angular/core';\nimport { addTaggedAdditionalCSS, Application, ContentView, Device, getViewById, Observable, profile, Utils, View } from '@nativescript/core';\nimport { getViewClass, isKnownView } from './element-registry';\nimport { getFirstNativeLikeView, NgView, TextNode } from './views';\n\nimport { NamespaceFilter, NAMESPACE_FILTERS } from './property-filter';\nimport { APP_ROOT_VIEW, ENABLE_REUSABE_VIEWS, NATIVESCRIPT_ROOT_MODULE_ID, PREVENT_SPECIFIC_EVENTS_DURING_CD } from './tokens';\nimport { NativeScriptDebug } from './trace';\nimport { ViewUtil } from './view-util';\n\nconst addStyleToCss = profile('\"renderer\".addStyleToCss', function addStyleToCss(style: string, tag?: string | number): void {\n if (tag) {\n addTaggedAdditionalCSS(style, tag);\n } else {\n Application.addCss(style);\n }\n});\n\nfunction runInRootZone<T>(fn: () => T): T {\n if (typeof Zone === 'undefined') {\n return fn();\n }\n return Zone.root.run(fn);\n}\n\nfunction inRootZone() {\n return function (target: unknown, key: string | symbol, descriptor: PropertyDescriptor) {\n const childFunction = descriptor.value;\n descriptor.value = function (...args: unknown[]) {\n const fn = childFunction.bind(this);\n return runInRootZone(() => fn(...args));\n };\n return descriptor;\n };\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeScriptRendererHelperService {\n private _executingDomChanges = 0;\n get executingDomChanges() {\n return this._executingDomChanges;\n }\n get isExecutingDomChanges() {\n return this._executingDomChanges > 0;\n }\n beginDomChanges() {\n this._executingDomChanges++;\n }\n endDomChanges() {\n this._executingDomChanges--;\n }\n executeDomChange<T>(fn: () => T): T {\n try {\n this.beginDomChanges();\n return fn();\n } finally {\n this.endDomChanges();\n }\n }\n}\n\nfunction modifiesDom() {\n return function (\n target: {\n _rendererHelper: NativeScriptRendererHelperService;\n },\n key: string | symbol,\n descriptor: PropertyDescriptor,\n ) {\n const childFunction = descriptor.value;\n descriptor.value = function (...args: unknown[]) {\n const fn = childFunction.bind(this);\n return this._rendererHelper.executeDomChange(() => fn(...args));\n };\n return descriptor;\n };\n}\n\nexport class NativeScriptRendererFactory implements RendererFactory2 {\n private componentRenderers = new Map<string, Renderer2>();\n private defaultRenderer: Renderer2;\n // backwards compatibility with RadListView\n private rootView = inject(APP_ROOT_VIEW);\n private namespaceFilters = inject(NAMESPACE_FILTERS);\n private rootModuleID = inject(NATIVESCRIPT_ROOT_MODULE_ID);\n private reuseViews = inject(ENABLE_REUSABE_VIEWS, {\n optional: true,\n });\n private injector = inject(Injector);\n private viewUtil = new ViewUtil(this.namespaceFilters, this.reuseViews);\n\n constructor() {\n if (typeof this.reuseViews !== 'boolean') {\n this.reuseViews = false; // default to false\n }\n this.defaultRenderer = new NativeScriptRenderer(this.rootView);\n }\n createRenderer(hostElement: any, type: RendererType2): Renderer2 {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRendererFactory.createRenderer ${hostElement}. type.id: ${type.id} type.encapsulation: ${type.encapsulation}`);\n }\n if (!hostElement || !type) {\n return this.defaultRenderer;\n }\n\n let renderer = this.componentRenderers.get(type.id);\n /**\n *! WARNING\n *! We're reusing the renderer for the components\n *! this might cause unexpected behavior as the \"rootView\" is an arbitrary hostElement\n *! also, the renderer has it's .destroy() called!\n *! might be useful to create a BaseEmulatedRender and a ProxyEmulatedRender\n *! every component type gets a BaseEmulatedRender (singleton) which is passed to ProxyEmulatedRender\n *! ProxyEmulatedRenderer registers with BaseEmulatedRender so we can clean up things like CSS when it's not needed\n *! this might be useful if we find a way to HMR component styling without a full rebootstrap\n */\n if (renderer) {\n if (renderer instanceof EmulatedRenderer) {\n renderer.applyToHost(hostElement);\n }\n\n return renderer;\n }\n\n if (type.encapsulation === ViewEncapsulation.None) {\n type.styles.map((s) => s.toString()).forEach((v) => addStyleToCss(v, this.rootModuleID));\n renderer = this.defaultRenderer;\n } else {\n runInInjectionContext(this.injector, () => {\n renderer = new EmulatedRenderer(type, hostElement);\n });\n (<EmulatedRenderer>renderer).applyToHost(hostElement);\n }\n\n this.componentRenderers.set(type.id, renderer);\n return renderer;\n }\n // begin?(): void {\n // throw new Error(\"Method not implemented.\");\n // }\n // end?(): void {\n // throw new Error(\"Method not implemented.\");\n // }\n whenRenderingDone(): Promise<any> {\n if (!this.rootView) {\n return Promise.resolve();\n }\n return new Promise<void>((resolve) => {\n let interval: any = 0;\n function scheduleResolve() {\n // iOS really hates synchronous things...\n // Utils.queueMacrotask(resolve);\n setTimeout(resolve, 15);\n }\n function fireWhenLoaded() {\n const view = rootFactory();\n if (view.isLoaded) {\n scheduleResolve();\n } else {\n view.once('loaded', scheduleResolve);\n }\n }\n const rootFactory = () => (this.rootView instanceof ContentView ? this.rootView.content : this.rootView);\n if (!rootFactory()) {\n interval = setInterval(() => {\n if (rootFactory()) {\n clearInterval(interval);\n fireWhenLoaded();\n }\n }, 10);\n } else {\n fireWhenLoaded();\n }\n });\n // throw new Error(\"Method not implemented.\");\n }\n}\n\nclass NativeScriptRenderer implements Renderer2 {\n private namespaceFilters = inject(NAMESPACE_FILTERS);\n private reuseViews = inject(ENABLE_REUSABE_VIEWS, {\n optional: true,\n });\n private viewUtil = new ViewUtil(this.namespaceFilters, this.reuseViews);\n _rendererHelper = inject(NativeScriptRendererHelperService);\n private specificPreventedEvents = new Set(\n inject(PREVENT_SPECIFIC_EVENTS_DURING_CD, {\n optional: true,\n }) ?? [],\n );\n private preventChangeEvents =\n inject(PREVENT_SPECIFIC_EVENTS_DURING_CD, {\n optional: true,\n }) ?? false;\n\n constructor(private rootView: View) {}\n get data(): { [key: string]: any } {\n throw new Error('Method not implemented.');\n }\n destroy(): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog('NativeScriptRenderer.destroy');\n }\n }\n @inRootZone()\n @modifiesDom()\n createElement(name: string, namespace?: string) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.createElement: ${name}`);\n }\n let oldName;\n if (!isKnownView(name)) {\n oldName = name;\n name = 'ProxyViewContainer';\n }\n const view = this.viewUtil.createView(name);\n if (oldName) {\n (view as any).customCSSName = oldName;\n }\n return view;\n }\n @inRootZone()\n @modifiesDom()\n createComment(value: string) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.createComment ${value}`);\n }\n return this.viewUtil.createComment(value);\n }\n @inRootZone()\n @modifiesDom()\n createText(value: string) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.createText ${value}`);\n }\n return this.viewUtil.createText(value);\n }\n destroyNode: (node: any) => void = (node: View) =>\n runInRootZone(() => {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.destroyNode node: ${node}`);\n }\n if (node?.destroyNode) {\n node?.destroyNode();\n }\n });\n @inRootZone()\n @modifiesDom()\n appendChild(parent: View, newChild: View): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.appendChild child: ${newChild} parent: ${parent}`);\n }\n this.viewUtil.appendChild(parent, newChild);\n }\n @inRootZone()\n @modifiesDom()\n insertBefore(parent: any, newChild: any, refChild: any): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.insertBefore child: ${newChild} ` + `parent: ${parent} refChild: ${refChild}`);\n }\n this.viewUtil.insertBefore(parent, newChild, refChild);\n }\n @inRootZone()\n @modifiesDom()\n removeChild(parent: any, oldChild: any, isHostElement?: boolean): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.removeChild child: ${oldChild} parent: ${parent} oldChild.parentNode: ${oldChild?.parentNode}`);\n }\n this.viewUtil.removeChild(parent ?? oldChild.parentNode, oldChild);\n }\n selectRootElement(selectorOrNode: any, preserveContent?: boolean) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.selectRootElement: ${selectorOrNode}`);\n }\n if (selectorOrNode instanceof View) {\n return selectorOrNode;\n }\n if (selectorOrNode && selectorOrNode[0] === '#') {\n const result = getViewById(this.rootView, selectorOrNode.slice(1));\n return (result || this.rootView) as View;\n }\n if (typeof selectorOrNode === 'string') {\n const view = this.viewUtil.createView(selectorOrNode);\n if (getFirstNativeLikeView(view) === view) {\n // view is nativelike!\n this.appendChild(this.rootView, view);\n return view;\n }\n }\n return this.rootView;\n }\n parentNode(node: NgView) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.parentNode for node: ${node} is ${node.parentNode}`);\n }\n return node.parentNode;\n }\n nextSibling(node: NgView) {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.nextSibling of ${node} is ${node.nextSibling}`);\n }\n return node.nextSibling;\n }\n @inRootZone()\n @modifiesDom()\n setAttribute(el: any, name: string, value: string, namespace?: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setAttribute ${namespace ? namespace + ':' : ''}${el}.${name} = ${value}`);\n }\n this.viewUtil.setProperty(el, name, value, namespace);\n }\n removeAttribute(el: any, name: string, namespace?: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.removeAttribute ${namespace ? namespace + ':' : ''}${el}.${name}`);\n }\n }\n @inRootZone()\n @modifiesDom()\n addClass(el: any, name: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.addClass ${name}`);\n }\n this.viewUtil.addClass(el, name);\n }\n @inRootZone()\n @modifiesDom()\n removeClass(el: any, name: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.removeClass ${name}`);\n }\n this.viewUtil.removeClass(el, name);\n }\n @inRootZone()\n @modifiesDom()\n setStyle(el: any, style: string, value: any, flags?: RendererStyleFlags2): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setStyle: ${el}, ${style} = ${value}`);\n }\n this.viewUtil.setStyle(el, style, value);\n }\n @inRootZone()\n @modifiesDom()\n removeStyle(el: any, style: string, flags?: RendererStyleFlags2): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog('NativeScriptRenderer.removeStyle: ${styleName}');\n }\n this.viewUtil.removeStyle(el, style);\n }\n @inRootZone()\n @modifiesDom()\n setProperty(el: any, name: string, value: any): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setProperty ${el}.${name} = ${value}`);\n }\n this.viewUtil.setProperty(el, name, value);\n }\n @inRootZone()\n @modifiesDom()\n setValue(node: any, value: string): void {\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.setValue renderNode: ${node}, value: ${value}`);\n }\n if (node instanceof TextNode) {\n node.text = value;\n }\n // throw new Error(\"Method not implemented.\");\n }\n listen(target: View, eventName: string, callback: (event: any) => boolean | void): () => void {\n // throw new Error(\"Method not implemented.\");\n if (NativeScriptDebug.enabled) {\n NativeScriptDebug.rendererLog(`NativeScriptRenderer.listen: ${eventName}`);\n }\n let modifiedCallback = callback;\n if ((this.preventChangeEvents && eventName.endsWith('Change')) || this.specificPreventedEvents.has(eventName)) {\n modifiedCallback = (...args) => {\n if (this._rendererHelper.isExecutingDomChanges) {\n return;\n }\n return callback(...args);\n };\n }\n target.on(eventName, modifiedCallback);\n if (eventName === View.loadedEvent && target.isLoaded) {\n // we must create a new obervable here to ensure that the event goes through whatever zone patches are applied\n const obs = new Observable();\n obs.once(eventName, modifiedCallback);\n obs.notify({\n eventName,\n object: target,\n });\n }\n return () => target.off(eventName, modifiedCallback);\n }\n}\n\n// CONTENT_ATTR not exported from nativescript-renderer - we need it for styles application.\nconst COMPONENT_REGEX = /%COMP%/g;\nconst ATTR_SANITIZER = /-/g;\nexport const COMPONENT_VARIABLE = '%COMP%';\nexport const HOST_ATTR = `_nghost-${COMPONENT_VARIABLE}`;\nexport const CONTENT_ATTR = `_ngcontent-${COMPONENT_VARIABLE}`;\n\nconst replaceNgAttribute = function (input: string, componentId: string): string {\n return input.replace(COMPONENT_REGEX, componentId);\n};\n\nconst addScopedStyleToCss = profile(`\"renderer\".addScopedStyleToCss`, function addScopedStyleToCss(style: string, tag?: number | string): void {\n if (tag) {\n addTaggedAdditionalCSS(style, tag);\n } else {\n Application.addCss(style);\n }\n});\n\n@Injectable()\nexport class EmulatedRenderer extends NativeScriptRenderer {\n private contentAttr: string;\n private hostAttr: string;\n private rootModuleId = inject(NATIVESCRIPT_ROOT_MODULE_ID);\n\n constructor(component: RendererType2, rootView: View) {\n super(rootView);\n\n const componentId = component.id.replace(ATTR_SANITIZER, '_');\n this.contentAttr = replaceNgAttribute(CONTENT_ATTR, componentId);\n this.hostAttr = replaceNgAttribute(HOST_ATTR, componentId);\n this.addStyles(component.styles, componentId);\n }\n\n applyToHost(view: NgView) {\n super.setAttribute(view, this.hostAttr, '');\n }\n\n appendChild(parent: any, newChild: NgView): void {\n super.appendChild(parent, newChild);\n }\n\n createElement(parent: any, name: string): NgView {\n const view = super.createElement(parent, name);\n\n // Set an attribute to the view to scope component-specific css.\n // The property name is pre-generated by Angular.\n super.setAttribute(view, this.contentAttr, '');\n\n return view;\n }\n\n @profile\n @inRootZone()\n @modifiesDom()\n private addStyles(styles: (string | any[])[], componentId: string) {\n styles\n .map((s) => s.toString())\n .map((s) => replaceNgAttribute(s, componentId))\n .forEach((s) => addScopedStyleToCss(s, this.rootModuleId));\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\n/**\n * Throws an exception when attempting to attach a null portal to a host.\n * @docs-private\n */\nexport function throwNullPortalError() {\n throw Error('Must provide a portal to attach');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a host that is already attached.\n * @docs-private\n */\nexport function throwPortalAlreadyAttachedError() {\n throw Error('Host already has a portal attached');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to an already-disposed host.\n * @docs-private\n */\nexport function throwPortalOutletAlreadyDisposedError() {\n throw Error('This PortalOutlet has already been disposed');\n}\n\n/**\n * Throws an exception when attempting to attach an unknown portal type.\n * @docs-private\n */\nexport function throwUnknownPortalTypeError() {\n throw Error('Attempting to attach an unknown Portal type. BasePortalOutlet accepts either ' + 'a ComponentPortal or a TemplatePortal.');\n}\n\n/**\n * Throws an exception when attempting to attach a portal to a null host.\n * @docs-private\n */\nexport function throwNullPortalOutletError() {\n throw Error('Attempting to attach a portal to a null PortalOutlet');\n}\n\n/**\n * Throws an exception when attempting to detach a portal that is not attached.\n * @docs-private\n */\nexport function throwNoPortalAttachedError() {\n throw Error('Attempting to detach a portal that is not attached to a host');\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { TemplateRef, ViewContainerRef, ElementRef, ComponentRef, EmbeddedViewRef, Injector, ComponentFactoryResolver } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { throwNullPortalOutletError, throwPortalAlreadyAttachedError, throwNoPortalAttachedError, throwNullPortalError, throwPortalOutletAlreadyDisposedError, throwUnknownPortalTypeError } from './portal-errors';\nimport type { ComponentType } from '../../utils/general';\n\n/**\n * A `Portal` is something that you want to render somewhere else.\n * It can be attach to / detached from a `PortalOutlet`.\n */\nexport abstract class Portal<T> {\n private _attachedHost: PortalOutlet | null;\n\n /** Attach this portal to a host. */\n attach(host: PortalOutlet): T {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (host == null) {\n throwNullPortalOutletError();\n }\n\n if (host.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n }\n\n this._attachedHost = host;\n return <T>host.attach(this);\n }\n\n /** Detach this portal from its host */\n detach(): void {\n const host = this._attachedHost;\n\n if (host != null) {\n this._attachedHost = null;\n host.detach();\n } else if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwNoPortalAttachedError();\n }\n }\n\n /** Whether this portal is attached to a host. */\n get isAttached(): boolean {\n return this._attachedHost != null;\n }\n\n /**\n * Sets the PortalOutlet reference without performing `attach()`. This is used directly by\n * the PortalOutlet when it is performing an `attach()` or `detach()`.\n */\n setAttachedHost(host: PortalOutlet | null) {\n this._attachedHost = host;\n }\n}\n\n/**\n * A `ComponentPortal` is a portal that instantiates some Component upon attachment.\n */\nexport class ComponentPortal<T> extends Portal<ComponentRef<T>> {\n /** The type of the component that will be instantiated for attachment. */\n component: ComponentType<T>;\n\n /**\n * [Optional] Where the attached component should live in Angular's *logical* component tree.\n * This is different from where the component *renders*, which is determined by the PortalOutlet.\n * The origin is necessary when the host is outside of the Angular application context.\n */\n viewContainerRef?: ViewContainerRef | null;\n\n /** [Optional] Injector used for the instantiation of the component. */\n injector?: Injector | null;\n\n /**\n * Alternate `ComponentFactoryResolver` to use when resolving the associated component.\n * Defaults to using the resolver from the outlet that the portal is attached to.\n */\n componentFactoryResolver?: ComponentFactoryResolver | null;\n\n constructor(component: ComponentType<T>, viewContainerRef?: ViewContainerRef | null, injector?: Injector | null, componentFactoryResolver?: ComponentFactoryResolver | null) {\n super();\n this.component = component;\n this.viewContainerRef = viewContainerRef;\n this.injector = injector;\n this.componentFactoryResolver = componentFactoryResolver;\n }\n}\n\n/**\n * A `TemplatePortal` is a portal that represents some embedded template (TemplateRef).\n */\nexport class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {\n /** The embedded template that will be used to instantiate an embedded View in the host. */\n templateRef: TemplateRef<C>;\n\n /** Reference to the ViewContainer into which the template will be stamped out. */\n viewContainerRef: ViewContainerRef;\n\n /** Contextual data to be passed in to the embedded view. */\n context: C | undefined;\n\n constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C) {\n super();\n this.templateRef = template;\n this.viewContainerRef = viewContainerRef;\n this.context = context;\n }\n\n get origin(): ElementRef {\n return this.templateRef.elementRef;\n }\n\n /**\n * Attach the portal to the provided `PortalOutlet`.\n * When a context is provided it will override the `context` property of the `TemplatePortal`\n * instance.\n */\n attach(host: PortalOutlet, context: C | undefined = this.context): EmbeddedViewRef<C> {\n this.context = context;\n return super.attach(host);\n }\n\n detach(): void {\n this.context = undefined;\n return super.detach();\n }\n}\n\n/**\n * A `DomPortal` is a portal whose DOM element will be taken from its current position\n * in the DOM and moved into a portal outlet, when it is attached. On detach, the content\n * will be restored to its original position.\n */\nexport class DomPortal<T = View> extends Portal<T> {\n /** DOM node hosting the portal's content. */\n readonly element: T;\n\n constructor(element: T | ElementRef<T>) {\n super();\n this.element = element instanceof ElementRef ? element.nativeElement : element;\n }\n}\n\n/** A `PortalOutlet` is an space that can contain a single `Portal`. */\nexport interface PortalOutlet {\n /** Attaches a portal to this outlet. */\n attach(portal: Portal<any>): any;\n\n /** Detaches the currently attached portal from this outlet. */\n detach(): any;\n\n /** Performs cleanup before the outlet is destroyed. */\n dispose(): void;\n\n /** Whether there is currently a portal attached to this outlet. */\n hasAttached(): boolean;\n}\n\n/**\n * Partial implementation of PortalOutlet that handles attaching\n * ComponentPortal and TemplatePortal.\n */\nexport abstract class BasePortalOutlet implements PortalOutlet {\n /** The portal currently attached to the host. */\n protected _attachedPortal: Portal<any> | null;\n\n /** A function that will permanently dispose this host. */\n private _disposeFn: (() => void) | null;\n\n /** Whether this host has already been permanently disposed. */\n private _isDisposed = false;\n\n /** Whether this host has an attached portal. */\n hasAttached(): boolean {\n return !!this._attachedPortal;\n }\n\n attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;\n attach(portal: any): any;\n\n /** Attaches a portal. */\n attach(portal: Portal<any>): any {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (!portal) {\n throwNullPortalError();\n }\n\n if (this.hasAttached()) {\n throwPortalAlreadyAttachedError();\n }\n\n if (this._isDisposed) {\n throwPortalOutletAlreadyDisposedError();\n }\n }\n\n if (portal instanceof ComponentPortal) {\n this._attachedPortal = portal;\n return this.attachComponentPortal(portal);\n } else if (portal instanceof TemplatePortal) {\n this._attachedPortal = portal;\n return this.attachTemplatePortal(portal);\n // @breaking-change 10.0.0 remove null check for `this.attachDomPortal`.\n } else if (this.attachDomPortal && portal instanceof DomPortal) {\n this._attachedPortal = portal;\n return this.attachDomPortal(portal);\n }\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n throwUnknownPortalTypeError();\n }\n }\n\n abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;\n\n abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;\n\n // @breaking-change 10.0.0 `attachDomPortal` to become a required abstract method.\n // eslint-disable-next-line @typescript-eslint/member-ordering\n readonly attachDomPortal: null | ((portal: DomPortal) => any) = null;\n\n /** Detaches a previously attached portal. */\n detach(): void {\n if (this._attachedPortal) {\n this._attachedPortal.setAttachedHost(null);\n this._attachedPortal = null;\n }\n\n this._invokeDisposeFn();\n }\n\n /** Permanently dispose of this portal host. */\n dispose(): void {\n if (this.hasAttached()) {\n this.detach();\n }\n\n this._invokeDisposeFn();\n this._isDisposed = true;\n }\n\n /** @docs-private */\n setDisposeFn(fn: () => void) {\n this._disposeFn = fn;\n }\n\n private _invokeDisposeFn() {\n if (this._disposeFn) {\n this._disposeFn();\n this._disposeFn = null;\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ComponentRef, Directive, EmbeddedViewRef, EventEmitter, NgModule, OnDestroy, OnInit, Output, Renderer2, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { CommentNode } from '../../views/invisible-nodes';\nimport { BasePortalOutlet, ComponentPortal, DomPortal, Portal, TemplatePortal } from './common';\n\n/**\n * Directive version of a `TemplatePortal`. Because the directive *is* a TemplatePortal,\n * the directive instance itself can be attached to a host, enabling declarative use of portals.\n */\n@Directive({\n selector: '[cdkPortal]',\n exportAs: 'cdkPortal',\n standalone: true,\n})\nexport class CdkPortal extends TemplatePortal {\n constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef) {\n super(templateRef, viewContainerRef);\n }\n}\n\n/**\n * Possible attached references to the CdkPortalOutlet.\n */\nexport type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;\n\n/**\n * Directive version of a PortalOutlet. Because the directive *is* a PortalOutlet, portals can be\n * directly attached to it, enabling declarative use.\n *\n * Usage:\n * `<ng-template [cdkPortalOutlet]=\"greeting\"></ng-template>`\n */\n@Directive({\n selector: '[cdkPortalOutlet]',\n exportAs: 'cdkPortalOutlet',\n standalone: true,\n // eslint-disable-next-line @angular-eslint/no-inputs-metadata-property\n inputs: ['portal: cdkPortalOutlet'],\n})\nexport class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {\n /** Whether the portal component is initialized. */\n private _isInitialized = false;\n\n /** Reference to the currently-attached component/view ref. */\n private _attachedRef: CdkPortalOutletAttachedRef;\n\n constructor(\n private _viewContainerRef: ViewContainerRef,\n private renderer: Renderer2,\n ) {\n super();\n }\n\n /** Portal associated with the Portal outlet. */\n get portal(): Portal<any> | null {\n return this._attachedPortal;\n }\n\n set portal(portal: Portal<any> | null) {\n // Ignore the cases where the `portal` is set to a falsy value before the lifecycle hooks have\n // run. This handles the cases where the user might do something like `<div cdkPortalOutlet>`\n // and attach a portal programmatically in the parent component. When Angular does the first CD\n // round, it will fire the setter with empty string, causing the user's content to be cleared.\n if (this.hasAttached() && !portal && !this._isInitialized) {\n return;\n }\n\n if (this.hasAttached()) {\n super.detach();\n }\n\n if (portal) {\n super.attach(portal);\n }\n\n this._attachedPortal = portal;\n }\n\n /** Emits when a portal is attached to the outlet. */\n @Output() attached: EventEmitter<CdkPortalOutletAttachedRef> = new EventEmitter<CdkPortalOutletAttachedRef>();\n\n /** Component or view reference that is attached to the portal. */\n get attachedRef(): CdkPortalOutletAttachedRef {\n return this._attachedRef;\n }\n\n ngOnInit() {\n this._isInitialized = true;\n }\n\n ngOnDestroy() {\n super.dispose();\n this._attachedPortal = null;\n this._attachedRef = null;\n }\n\n /**\n * Attach the given ComponentPortal to this PortalOutlet using the ComponentFactoryResolver.\n *\n * @param portal Portal to be attached to the portal outlet.\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n portal.setAttachedHost(this);\n\n // If the portal specifies an origin, use that as the logical location of the component\n // in the application tree. Otherwise use the location of this PortalOutlet.\n const viewContainerRef = portal.viewContainerRef != null ? portal.viewContainerRef : this._viewContainerRef;\n\n // const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n // const componentFactory = resolver.resolveComponentFactory<T>(portal.component);\n const ref = viewContainerRef.createComponent(portal.component);\n // const ref = viewContainerRef.createComponent<T>(portal.component, viewContainerRef.length, portal.injector || viewContainerRef.injector);\n\n // If we're using a view container that's different from the injected one (e.g. when the portal\n // specifies its own) we need to move the component into the outlet, otherwise it'll be rendered\n // inside of the alternate view container.\n if (viewContainerRef !== this._viewContainerRef) {\n this.renderer.appendChild(this._getRootNode(), (ref.hostView as EmbeddedViewRef<any>).rootNodes[0]);\n }\n\n super.setDisposeFn(() => ref.destroy());\n this._attachedPortal = portal;\n this._attachedRef = ref;\n this.attached.emit(ref);\n\n return ref;\n }\n\n /**\n * Attach the given TemplatePortal to this PortalHost as an embedded View.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n portal.setAttachedHost(this);\n const viewRef = this._viewContainerRef.createEmbeddedView(portal.templateRef, portal.context);\n super.setDisposeFn(() => this._viewContainerRef.clear());\n\n this._attachedPortal = portal;\n this._attachedRef = viewRef;\n this.attached.emit(viewRef);\n\n return viewRef;\n }\n\n /**\n * Attaches the given DomPortal to this PortalHost by moving all of the portal content into it.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode: CommentNode = this.renderer.createComment('dom-portal');\n\n portal.setAttachedHost(this);\n this.renderer.insertBefore(element.parentNode, anchorNode, element);\n this.renderer.appendChild(this._getRootNode(), element);\n\n super.setDisposeFn(() => {\n if (anchorNode.parentNode) {\n this.renderer.insertBefore(anchorNode.parentNode, element, anchorNode);\n this.renderer.removeChild(anchorNode.parentNode, anchorNode);\n // anchorNode.parentNode!.replaceChild(element, anchorNode);\n }\n });\n };\n\n /** Gets the root node of the portal outlet. */\n private _getRootNode(): View {\n const nativeElement: View = this._viewContainerRef.element.nativeElement;\n\n // The directive could be set on a template which will result in a comment\n // node being the root. Use the comment's parent node if that is the case.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n return (!(nativeElement instanceof CommentNode) ? nativeElement : nativeElement.parentNode!) as View;\n }\n\n // eslint-disable-next-line @typescript-eslint/member-ordering\n static ngAcceptInputType_portal: Portal<any> | null | undefined | '';\n}\n\n@NgModule({\n imports: [CdkPortal, CdkPortalOutlet],\n exports: [CdkPortal, CdkPortalOutlet],\n})\nexport class PortalModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, ApplicationRef, Injector, Renderer2, Optional } from '@angular/core';\nimport { View } from '@nativescript/core';\nimport { CommentNode } from '../../views/invisible-nodes';\nimport { ViewUtil } from '../../view-util';\nimport { BasePortalOutlet, ComponentPortal, TemplatePortal, DomPortal } from './common';\n\n/**\n * A PortalOutlet for attaching portals to an arbitrary DOM element outside of the Angular\n * application context.\n */\nexport class NativeScriptDomPortalOutlet extends BasePortalOutlet {\n private _viewUtil: ViewUtil;\n constructor(\n /** Element into which the content is projected. */\n public outletElement: View,\n private _componentFactoryResolver: ComponentFactoryResolver,\n private _appRef: ApplicationRef,\n private _defaultInjector: Injector,\n @Optional() viewUtil?: ViewUtil,\n ) {\n super();\n this._viewUtil = viewUtil || this._defaultInjector.get(ViewUtil);\n }\n\n /**\n * Attach the given ComponentPortal to DOM element using the ComponentFactoryResolver.\n * @param portal Portal to be attached\n * @returns Reference to the created component.\n */\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n const resolver = portal.componentFactoryResolver || this._componentFactoryResolver;\n const componentFactory = resolver.resolveComponentFactory(portal.component);\n let componentRef: ComponentRef<T>;\n\n // If the portal specifies a ViewContainerRef, we will use that as the attachment point\n // for the component (in terms of Angular's component tree, not rendering).\n // When the ViewContainerRef is missing, we use the factory to create the component directly\n // and then manually attach the view to the application.\n if (portal.viewContainerRef) {\n componentRef = portal.viewContainerRef.createComponent(componentFactory, portal.viewContainerRef.length, portal.injector || portal.viewContainerRef.injector);\n\n this.setDisposeFn(() => componentRef.destroy());\n } else {\n componentRef = componentFactory.create(portal.injector || this._defaultInjector);\n this._appRef.attachView(componentRef.hostView);\n this.setDisposeFn(() => {\n this._appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n }\n // At this point the component has been instantiated, so we move it to the location in the DOM\n // where we want it to be rendered.\n const rootNode = this._getComponentRootNode(componentRef);\n if (rootNode.parent) {\n this._viewUtil.removeChild(rootNode.parent as View, rootNode);\n }\n this._viewUtil.appendChild(this.outletElement, this._getComponentRootNode(componentRef));\n\n return componentRef;\n }\n\n /**\n * Attaches a template portal to the DOM as an embedded view.\n * @param portal Portal to be attached.\n * @returns Reference to the created embedded view.\n */\n attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C> {\n const viewContainer = portal.viewContainerRef;\n const viewRef = viewContainer.createEmbeddedView(portal.templateRef, portal.context);\n\n // The method `createEmbeddedView` will add the view as a child of the viewContainer.\n // But for the DomPortalOutlet the view can be added everywhere in the DOM\n // (e.g Overlay Container) To move the view to the specified host element. We just\n // re-append the existing root nodes.\n viewRef.rootNodes.forEach((rootNode) => {\n if (rootNode.parent) {\n this._viewUtil.removeChild(rootNode.parent as View, rootNode);\n }\n this._viewUtil.appendChild(this.outletElement, rootNode);\n });\n\n // Note that we want to detect changes after the nodes have been moved so that\n // any directives inside the portal that are looking at the DOM inside a lifecycle\n // hook won't be invoked too early.\n viewRef.detectChanges();\n\n this.setDisposeFn(() => {\n const index = viewContainer.indexOf(viewRef);\n if (index !== -1) {\n viewContainer.remove(index);\n }\n });\n\n // TODO(jelbourn): Return locals from view.\n return viewRef;\n }\n\n /**\n * Attaches a DOM portal by transferring its content into the outlet.\n * @param portal Portal to be attached.\n * @deprecated To be turned into a method.\n * @breaking-change 10.0.0\n */\n attachDomPortal = (portal: DomPortal) => {\n const element = portal.element;\n if (!element.parentNode && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error('DOM portal content must be attached to a parent node.');\n }\n\n // Anchor used to save the element's previous position so\n // that we can restore it when the portal is detached.\n const anchorNode: CommentNode = this._viewUtil.createComment('dom-portal');\n\n this._viewUtil.insertBefore(element.parentNode as View, anchorNode, element);\n this._viewUtil.appendChild(this.outletElement, element);\n\n super.setDisposeFn(() => {\n // We can't use `replaceWith` here because IE doesn't support it.\n if (anchorNode.parentNode) {\n this._viewUtil.insertBefore(anchorNode.parentNode, element, anchorNode);\n this._viewUtil.removeChild(anchorNode.parentNode, anchorNode);\n //anchorNode.parentNode.replaceChild(element, anchorNode);\n }\n });\n };\n\n /**\n * Clears out a portal from the DOM.\n */\n dispose(): void {\n super.dispose();\n if (this.outletElement.parentNode != null) {\n this._viewUtil.removeChild(this.outletElement.parentNode as View, this.outletElement);\n }\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private _getComponentRootNode(componentRef: ComponentRef<any>): View {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as View;\n }\n}\n","import { ApplicationRef, ChangeDetectorRef, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, inject, Injector, NO_ERRORS_SCHEMA, OnDestroy, TemplateRef, Type, ViewChild, ViewContainerRef } from '@angular/core';\nimport { ProxyViewContainer, Trace } from '@nativescript/core';\nimport { registerElement } from '../element-registry';\nimport type { ComponentType } from '../utils/general';\nimport { ComponentPortal, TemplatePortal } from './portal';\n\nregisterElement('DetachedContainer', () => ProxyViewContainer, {\n skipAddToDom: true,\n});\n\n/**\n * Wrapper component used for loading components when navigating\n * It uses DetachedContainer as selector so that it is containerRef is not attached to\n * the visual tree.\n */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'DetachedContainer',\n template: `<Placeholder #loader></Placeholder>\n <ng-container #vc></ng-container>\n <ng-content></ng-content>`,\n standalone: true,\n schemas: [NO_ERRORS_SCHEMA],\n})\n// eslint-disable-next-line @angular-eslint/component-class-suffix\nexport class DetachedLoader implements OnDestroy {\n @ViewChild('vc', { read: ViewContainerRef, static: true }) vc: ViewContainerRef;\n private disposeFunctions: Array<() => void> = [];\n // tslint:disable-line:component-class-suffix\n resolver = inject(ComponentFactoryResolver);\n changeDetector = inject(ChangeDetectorRef);\n containerRef = inject(ViewContainerRef);\n appRef = inject(ApplicationRef);\n\n public createComponentPortal<T>(componentType: ComponentType<T>, customInjector?: Injector) {\n return new ComponentPortal(componentType, this.vc, customInjector || this.vc.injector);\n }\n\n public createTemplatePortal<T>(templateRef: TemplateRef<T>, context?: T) {\n return new TemplatePortal(templateRef, this.vc, context);\n }\n\n private loadInAppRef(componentType: Type<any>): ComponentRef<any> {\n const factory = this.resolver.resolveComponentFactory(componentType);\n const componentRef = factory.create(this.containerRef.injector);\n this.appRef.attachView(componentRef.hostView);\n\n this.disposeFunctions.push(() => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n\n // Component is created, built may not be checked if we are loading\n // inside component with OnPush CD strategy. Mark us for check to be sure CD will reach us.\n // We are inside a promise here so no need for setTimeout - CD should trigger\n // after the promise.\n Trace.write('DetachedLoader.loadInLocation component loaded -> markForCheck', 'detached-loader');\n\n return componentRef;\n }\n\n private loadInLocation(componentType: Type<any>): ComponentRef<any> {\n return this.vc.createComponent(componentType);\n }\n\n public ngOnDestroy() {\n this.disposeFunctions.forEach((fn) => fn());\n }\n\n public detectChanges() {\n this.changeDetector.markForCheck();\n }\n\n /**\n * @deprecated use Portals\n */\n public loadComponent(componentType: Type<any>): Promise<ComponentRef<any>> {\n Trace.write('DetachedLoader.loadComponent', 'detached-loader');\n return Promise.resolve(this.loadInAppRef(componentType));\n }\n\n /**\n * @deprecated use Portals\n */\n public loadComponentSync(componentType: Type<any>): ComponentRef<any> {\n Trace.write('DetachedLoader.loadComponentSync', 'detached-loader');\n return this.loadInAppRef(componentType);\n }\n\n /**\n * @deprecated use Portals\n */\n public loadComponentInLocation(componentType: Type<any>): ComponentRef<any> {\n Trace.write('DetachedLoader.loadComponentInLocation', 'detached-loader');\n return this.loadInLocation(componentType);\n }\n\n /**\n * @deprecated use Portals\n */\n public loadWithFactory<T>(factory: ComponentFactory<T>): ComponentRef<T> {\n const componentRef = factory.create(this.containerRef.injector);\n this.appRef.attachView(componentRef.hostView);\n\n this.disposeFunctions.push(() => {\n this.appRef.detachView(componentRef.hostView);\n componentRef.destroy();\n });\n return componentRef;\n }\n\n /**\n * @deprecated use Portals\n */\n public loadWithFactoryInLocation<T>(factory: ComponentFactory<T>): ComponentRef<T> {\n return this.vc.createComponent(factory);\n }\n}\n","import { ElementRef, Inject, Injectable, OnDestroy, Optional } from '@angular/core';\nimport { NavigatedData, Page, View, ViewBase } from '@nativescript/core';\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\nimport { distinctUntilChanged } from 'rxjs/operators';\n\n@Injectable()\nexport class PageService implements OnDestroy {\n page: Page;\n private _inPage$: BehaviorSubject<boolean>;\n private _pageEvents$ = new Subject<NavigatedData>();\n\n get inPage(): boolean {\n return this._inPage$.value;\n }\n get inPage$(): Observable<boolean> {\n return this._inPage$.pipe(distinctUntilChanged());\n }\n get pageEvents$(): Observable<NavigatedData> {\n return this._pageEvents$.asObservable();\n }\n constructor(@Optional() page?: Page, @Optional() elRef?: ElementRef<ViewBase>, @Optional() view?: ViewBase) {\n if (page) {\n this.page = page;\n } else {\n view = view || elRef.nativeElement;\n while (view) {\n if (view instanceof Page) {\n this.page = view;\n break;\n }\n view = view.parent;\n }\n }\n this._inPage$ = new BehaviorSubject<boolean>(!!this.page?.isLoaded);\n if (this.page) {\n this.page.on('navigatedFrom', this.pageEvent, this);\n this.page.on('navigatedTo', this.pageEvent, this);\n this.page.on('navigatingFrom', this.pageEvent, this);\n this.page.on('navigatingTo', this.pageEvent, this);\n }\n }\n\n ngOnDestroy() {\n if (this.page) {\n this.page.off('navigatedFrom', this.pageEvent, this);\n this.page.off('navigatedTo', this.pageEvent, this);\n this.page.off('navigatingFrom', this.pageEvent, this);\n this.page.off('navigatingTo', this.pageEvent, this);\n }\n this._inPage$.complete();\n this._pageEvents$.complete();\n }\n\n private pageEvent(evt: NavigatedData) {\n this._pageEvents$.next(evt);\n switch (evt.eventName) {\n case 'navigatedTo':\n this._inPage$.next(true);\n break;\n case 'navigatedFrom':\n this._inPage$.next(false);\n break;\n default:\n }\n }\n}\n","import { AfterViewInit, Component, ElementRef, Input, OnChanges, Renderer2, SimpleChanges, ViewChild } from '@angular/core';\nimport { Frame, Page, View } from '@nativescript/core';\nimport { frameMeta, registerElement } from '../../element-registry';\nimport { PageService } from './page.service';\n\nexport function customFrameComponentFactory(v: FramePageComponent) {\n return v.element.nativeElement;\n}\n\nexport function customPageFactoryFromFrame(v: FramePageComponent) {\n return v.page;\n}\n\nregisterElement('FramePage', () => Frame, {\n insertChild: (parent: Frame, child: View) => {\n if (child instanceof Page) {\n frameMeta.insertChild(parent, child);\n return;\n }\n parent['__ng_page__'].content = child;\n },\n});\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'FramePage',\n template: `<ng-content></ng-content>`,\n standalone: true,\n providers: [\n {\n provide: Frame,\n useFactory: customFrameComponentFactory,\n deps: [FramePageComponent],\n },\n {\n provide: Page,\n useFactory: customPageFactoryFromFrame,\n deps: [FramePageComponent],\n },\n PageService,\n ],\n})\nexport class FramePageComponent implements AfterViewInit, OnChanges {\n page: Page;\n\n @Input() actionBarHidden = false;\n\n constructor(public element: ElementRef<Frame>, renderer: Renderer2) {\n this.page = renderer.createElement('Page') as Page;\n element.nativeElement['__ng_page__'] = this.page;\n renderer.appendChild(element.nativeElement, this.page);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.actionBarHidden && changes.actionBarHidden.previousValue !== changes.actionBarHidden.currentValue) {\n if (this.page) {\n this.page.actionBarHidden = !!this.actionBarHidden;\n }\n }\n }\n ngAfterViewInit(): void {\n if (this.page) {\n this.page.actionBarHidden = !!this.actionBarHidden;\n }\n }\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Frame } from '@nativescript/core';\n\nexport function customFrameDirectiveFactory(v: FrameDirective) {\n return v.element.nativeElement;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'Frame',\n standalone: true,\n providers: [\n {\n provide: Frame,\n useFactory: customFrameDirectiveFactory,\n deps: [FrameDirective],\n },\n ],\n})\nexport class FrameDirective {\n constructor(public element: ElementRef<Frame>) {}\n}\n","import { Directive, ElementRef } from '@angular/core';\nimport { Page } from '@nativescript/core';\nimport { PageService } from './page.service';\n\nexport function customPageFactory(v: PageDirective) {\n return v.element.nativeElement;\n}\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'Page',\n standalone: true,\n providers: [\n {\n provide: Page,\n useFactory: customPageFactory,\n deps: [PageDirective],\n },\n PageService,\n ],\n})\nexport class PageDirective {\n constructor(public element: ElementRef<Page>) {}\n}\n","import { NgModule } from '@angular/core';\nimport { FramePageComponent } from './frame-page.component';\nimport { FrameDirective } from './frame.directive';\nimport { PageDirective } from './page.directive';\n\n@NgModule({\n imports: [FrameDirective, PageDirective, FramePageComponent],\n exports: [FrameDirective, PageDirective, FramePageComponent],\n})\nexport class FramePageModule {}\n","export function isPresent(obj: any): boolean {\n return obj !== undefined && obj !== null;\n}\n\nexport function isBlank(obj: any): boolean {\n return obj === undefined || obj === null;\n}\n","import { Directive, Component, ElementRef, OnDestroy, inject } from '@angular/core';\nimport { ActionBar, ActionItem, ActionItems, NavigationButton, Page } from '@nativescript/core';\n\nimport { isBlank } from '../../utils/lang-facade';\nimport { NgView, ViewClassMeta, ViewExtensions } from '../../views/view-types';\nimport { isInvisibleNode, isView } from '../../views/utils';\nimport { registerElement } from '../../element-registry';\n\nexport function isActionItem(view: any): view is ActionItem {\n return view instanceof ActionItem;\n}\n\nexport function isNavigationButton(view: any): view is NavigationButton {\n return view instanceof NavigationButton;\n}\n\ntype NgActionBar = ActionBar & ViewExtensions;\n\nexport const actionBarMeta: ViewClassMeta = {\n skipAddToDom: true,\n insertChild: (parent: NgActionBar, child: NgView, next: any) => {\n if (isInvisibleNode(child)) {\n return;\n } else if (isNavigationButton(child)) {\n parent.navigationButton = child;\n child.parentNode = parent;\n } else if (isActionItem(child)) {\n addActionItem(parent, child, next);\n child.parentNode = parent;\n } else if (isView(child)) {\n parent.titleView = child;\n }\n },\n removeChild: (parent: NgActionBar, child: NgView) => {\n if (isInvisibleNode(child)) {\n return;\n } else if (isNavigationButton(child)) {\n if (parent.navigationButton === child) {\n parent.navigationButton = null;\n }\n\n child.parentNode = null;\n } else if (isActionItem(child)) {\n parent.actionItems.removeItem(child);\n child.parentNode = null;\n } else if (isView(child) && parent.titleView && parent.titleView === child) {\n parent.titleView = null;\n }\n },\n};\n\nregisterElement('ActionBar', () => ActionBar, actionBarMeta);\nregisterElement('ActionItem', () => <any>ActionItem);\nregisterElement('NavigationButton', () => <any>NavigationButton);\n\nconst addActionItem = (bar: NgActionBar, item: ActionItem, next: ActionItem) => {\n if (next) {\n insertActionItemBefore(bar, item, next);\n } else {\n appendActionItem(bar, item);\n }\n};\n\nconst insertActionItemBefore = (bar: NgActionBar, item: ActionItem, next: ActionItem) => {\n const actionItems: ActionItems = bar.actionItems;\n const actionItemsCollection: ActionItem[] = actionItems.getItems();\n\n const indexToInsert = actionItemsCollection.indexOf(next);\n actionItemsCollection.splice(indexToInsert, 0, item);\n\n (<any>actionItems).setItems(actionItemsCollection);\n};\n\nconst appendActionItem = (bar: NgActionBar, item: ActionItem) => {\n bar.actionItems.addItem(item);\n};\n\n@Component({\n selector: 'ActionBar',\n template: '<ng-content></ng-content>',\n standalone: true,\n})\nexport class ActionBarComponent {\n element = inject(ElementRef);\n page = inject(Page, { optional: true });\n constructor() {\n if (!this.page) {\n throw new Error('No Page found in ActionBarComponent.\\n' + 'Only a Page can contain an ActionBar, so please ensure ActionBar is only used inside a Component that is routed via page-router-outlet or is contained in a Page.\\n' + 'Example for root action bars in AppComponent: <Frame><Page><ActionBar>....</ActionBar></Page></Frame>');\n }\n\n if (isBlank(this.page.actionBarHidden)) {\n this.page.actionBarHidden = false;\n }\n this.page.actionBar = this.element.nativeElement;\n this.page.actionBar.update();\n }\n}\n\n@Component({\n selector: 'ActionBarExtension',\n template: '',\n standalone: true,\n})\nexport class ActionBarScope {\n page = inject(Page, { optional: true });\n constructor() {\n if (!this.page) {\n throw new Error('Inside ActionBarExtension but no ActionBar found to extend.');\n }\n }\n\n public onNavButtonInit(navBtn: NavigationButtonDirective) {\n this.page.actionBar.navigationButton = navBtn.element.nativeElement;\n }\n\n public onNavButtonDestroy(navBtn: NavigationButtonDirective) {\n const nav = <NavigationButton>navBtn.element.nativeElement;\n if (nav && this.page.actionBar.navigationButton === nav) {\n this.page.actionBar.navigationButton = null;\n }\n }\n\n public onActionInit(item: ActionItemDirective) {\n this.page.actionBar.actionItems.addItem(item.element.nativeElement);\n }\n\n public onActionDestroy(item: ActionItemDirective) {\n if (item.element.nativeElement.actionBar) {\n this.page.actionBar.actionItems.removeItem(item.element.nativeElement);\n }\n }\n}\n\n@Directive({\n selector: 'ActionItem',\n standalone: true,\n})\nexport class ActionItemDirective implements OnDestroy {\n element = inject(ElementRef);\n ownerScope = inject(ActionBarScope, { optional: true });\n constructor() {\n if (this.ownerScope) {\n this.ownerScope.onActionInit(this);\n }\n }\n\n ngOnDestroy() {\n if (this.ownerScope) {\n this.ownerScope.onActionDestroy(this);\n }\n }\n}\n\n@Directive({\n selector: 'NavigationButton',\n standalone: true,\n})\nexport class NavigationButtonDirective implements OnDestroy {\n element = inject(ElementRef);\n ownerScope = inject(ActionBarScope, { optional: true });\n constructor() {\n if (this.ownerScope) {\n this.ownerScope.onNavButtonInit(this);\n }\n }\n\n ngOnDestroy() {\n if (this.ownerScope) {\n this.ownerScope.onNavButtonDestroy(this);\n }\n }\n}\n","/**\n * Utility method to ensure a NgModule is only imported once in a codebase, otherwise will throw to help prevent accidental double importing\n * @param parentModule Parent module name\n * @param moduleName The module name\n */\nexport function throwIfAlreadyLoaded(parentModule: any, moduleName: string) {\n if (parentModule) {\n throw new Error(`${moduleName} has already been loaded. Import ${moduleName} in the AppModule only.`);\n }\n}\n\n/**\n * Utility method which will only fire the callback once ever\n * @param fn callback to call only once\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-function-type\nexport function once(fn: Function) {\n let wasCalled = false;\n\n return function wrapper() {\n if (wasCalled) {\n return;\n }\n\n wasCalled = true;\n // eslint-disable-next-line prefer-spread, prefer-rest-params\n fn.apply(null, arguments);\n };\n}\n\n/** Interface that can be used to generically type a class. */\nexport interface ComponentType<T> {\n new (...args: any[]): T;\n}\n\nexport function isListLikeIterable(obj: any): boolean {\n if (!isJsObject(obj)) return false;\n return (\n Array.isArray(obj) ||\n (!(obj instanceof Map) && // JS Map are iterables but return entries as [k, v]\n Symbol.iterator in obj)\n ); // JS Iterable have a Symbol.iterator prop\n}\n\nexport function isJsObject(o: any): boolean {\n return o !== null && (typeof o === 'function' || typeof o === 'object');\n}\n","import {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n Directive,\n DoCheck,\n ElementRef,\n EmbeddedViewRef,\n EventEmitter,\n forwardRef,\n Host,\n HostListener,\n inject,\n Inject,\n InjectionToken,\n Input,\n IterableDiffer,\n IterableDiffers,\n NgZone,\n OnDestroy,\n Output,\n TemplateRef,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n CoreTypes,\n ItemEventData,\n KeyedTemplate,\n LayoutBase,\n ListView,\n ObservableArray,\n profile,\n SearchEventData,\n View,\n} from '@nativescript/core';\nimport type { Template as NsTemplate } from '@nativescript/core';\n\nimport { extractSingleViewRecursive } from '../../element-registry/registry';\nimport { NativeScriptDebug } from '../../trace';\nimport { isListLikeIterable } from '../../utils/general';\nimport { NgViewTemplate } from '../../view-refs';\nimport { DetachedLoader } from '../detached-loader';\n\nconst NG_VIEW = '_ngViewRef';\n\nexport interface TemplatedItemsHost<T = any> {\n registerTemplate(key: string, template: TemplateRef<T>);\n}\n\nexport const TEMPLATED_ITEMS_COMPONENT = new InjectionToken<TemplatedItemsHost>('TemplatedItemsComponent');\n\nexport class ItemContext<T> {\n constructor(\n public $implicit?: T,\n public item?: T,\n public index?: number,\n public even?: boolean,\n public odd?: boolean,\n ) {}\n}\n\nexport class NsTemplatedItem<T> implements NgViewTemplate<{ index: number; data: T }> {\n constructor(\n private template: TemplateRef<ItemContext<T>>,\n public location: ViewContainerRef,\n private onCreate?: (view: View) => void,\n ) {}\n create(context?: { index: number; data: T }): View {\n const viewRef = this.location.createEmbeddedView(\n this.template,\n context ? this.setupItemContext(context) : new ItemContext(),\n );\n viewRef.detach(); // create detached, just beware this doesn't always work and the view might run the first CD anyway.\n const resultView = getItemViewRoot(viewRef);\n resultView[NG_VIEW] = viewRef;\n if (this.onCreate) {\n this.onCreate(resultView);\n }\n return resultView;\n }\n update(view: View, context?: { index: number; data: T }): void {\n const viewRef = this.getEmbeddedViewRef(view);\n this.setupItemContext(context, viewRef);\n viewRef?.detectChanges();\n }\n attach(view: View): void {\n const viewRef = this.getEmbeddedViewRef(view);\n viewRef?.reattach();\n viewRef?.detectChanges();\n }\n detach(view: View): void {\n const viewRef = this.getEmbeddedViewRef(view);\n viewRef?.detach();\n }\n dispose(view: View): void {\n const viewRef = this.getEmbeddedViewRef(view);\n viewRef?.destroy();\n }\n\n getEmbeddedViewRef(view: View): EmbeddedViewRef<ItemContext<T>> | undefined {\n let viewRef = view[NG_VIEW];\n\n // Getting angular view from original element (in cases when ProxyViewContainer\n // is used NativeScript internally wraps it in a StackLayout)\n if (!viewRef && view instanceof LayoutBase && view.getChildrenCount() > 0) {\n viewRef = view.getChildAt(0)[NG_VIEW];\n }\n return viewRef;\n }\n\n isValid(view: View) {\n return !!this.getEmbeddedViewRef(view);\n }\n\n private setupItemContext(\n { index, data }: { index: number; data: T },\n oldView?: EmbeddedViewRef<ItemContext<T>>,\n ): ItemContext<T> {\n const context: ItemContext<T> = oldView ? oldView.context : new ItemContext<T>();\n context.$implicit = data;\n context.item = data;\n context.index = index;\n context.even = index % 2 === 0;\n context.odd = !context.even;\n return context;\n }\n}\n\nexport interface SetupItemViewArgs<T> {\n view: EmbeddedViewRef<ItemContext<T>>;\n nativeElement: View;\n data: T;\n index: number;\n context: ItemContext<T>;\n}\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'ListView',\n template: `<DetachedContainer>\n <ng-container #loader></ng-container>\n </DetachedContainer>`,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [DetachedLoader],\n providers: [{ provide: TEMPLATED_ITEMS_COMPONENT, useExisting: forwardRef(() => ListViewComponent) }],\n})\nexport class ListViewComponent<T = any> implements DoCheck, OnDestroy, AfterContentInit, TemplatedItemsHost {\n public get nativeElement(): ListView {\n return this.templatedItemsView;\n }\n\n private readonly _iterableDiffers: IterableDiffers = inject(IterableDiffers);\n private readonly _changeDetectorRef: ChangeDetectorRef = inject(ChangeDetectorRef);\n private readonly _elementRef: ElementRef = inject(ElementRef);\n\n // I believe this only exists so this can be inherited and people can override it.\n protected templatedItemsView: ListView = this._elementRef.nativeElement;\n protected _items: T[] | ObservableArray<T>;\n protected _differ: IterableDiffer<T>;\n protected _templateMap: Map<string, NsTemplatedItem<T>>;\n protected _viewToTemplate: WeakMap<View, string> = new WeakMap<View, string>();\n\n @ViewChild('loader', { read: ViewContainerRef, static: true }) loader: ViewContainerRef;\n\n @Output() public setupItemView = new EventEmitter<SetupItemViewArgs<T>>();\n\n @ContentChild(TemplateRef, { read: TemplateRef, static: false }) itemTemplateQuery: TemplateRef<ItemContext<T>>;\n\n // Sticky header template driven by Angular. Users can provide either:\n // 1) A string/Template bound to the ListView `[stickyHeaderTemplate]` input\n // (mirrors the XML attribute usage), or\n // 2) An Angular `<ng-template #nsStickyHeaderTemplate>` whose root becomes\n // the header view when using the external renderer.\n @ContentChild('nsStickyHeaderTemplate', { read: TemplateRef, static: false })\n stickyHeaderTemplateRef: TemplateRef<ItemContext<any>>;\n\n fallbackItemTemplate: TemplateRef<ItemContext<T>>;\n\n /**\n * Sticky header template as supported by core ListView (string or NsTemplate).\n * This allows direct string templates just like XML usage:\n * `<ListView stickyHeaderTemplate=\"<GridLayout>...</GridLayout>\">`.\n */\n @Input()\n get stickyHeaderTemplate(): string | NsTemplate {\n return this.templatedItemsView?.stickyHeaderTemplate as any;\n }\n set stickyHeaderTemplate(value: string | NsTemplate) {\n if (this.templatedItemsView) {\n // If Angular template reference is also provided, that takes precedence\n // and will be wired in ngAfterContentInit via stickyHeaderTemplateRef.\n this.templatedItemsView.stickyHeaderTemplate = value as any;\n }\n }\n\n @Input()\n get stickyHeader(): boolean {\n return this.templatedItemsView?.stickyHeader;\n }\n set stickyHeader(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.stickyHeader = value;\n }\n }\n\n @Input()\n get stickyHeaderHeight(): CoreTypes.LengthType {\n return this.templatedItemsView?.stickyHeaderHeight;\n }\n set stickyHeaderHeight(value: number) {\n if (this.templatedItemsView) {\n this.templatedItemsView.stickyHeaderHeight = value;\n }\n }\n\n @Input()\n get stickyHeaderTopPadding(): any {\n return this.templatedItemsView?.stickyHeaderTopPadding as any;\n }\n set stickyHeaderTopPadding(value: any) {\n if (this.templatedItemsView) {\n this.templatedItemsView.stickyHeaderTopPadding = value;\n }\n }\n\n @Input()\n get sectioned(): boolean {\n return this.templatedItemsView?.sectioned;\n }\n set sectioned(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.sectioned = value;\n }\n }\n\n @Input()\n get showSearch(): boolean {\n return this.templatedItemsView?.showSearch;\n }\n set showSearch(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.showSearch = value;\n }\n }\n\n @Input()\n get searchAutoHide(): boolean {\n return this.templatedItemsView?.searchAutoHide;\n }\n set searchAutoHide(value: boolean) {\n if (this.templatedItemsView) {\n this.templatedItemsView.searchAutoHide = value;\n }\n }\n\n @Input()\n get items() {\n return this._items;\n }\n\n set items(value: T[] | ObservableArray<T>) {\n this._items = value;\n let needDiffer = true;\n if (value instanceof ObservableArray) {\n needDiffer = false;\n }\n if (needDiffer && !this._differ && isListLikeIterable(value)) {\n this._differ = this._iterableDiffers.find(this._items).create((_index, item) => {\n return item;\n });\n }\n\n this.templatedItemsView.items = this._items;\n }\n\n /**\n * @deprecated\n */\n constructor(_elementRef: ElementRef);\n /**\n * @deprecated\n */\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _changeDetectorRef: ChangeDetectorRef);\n /**\n * @deprecated\n */\n constructor(_elementRef: ElementRef, _iterableDiffers: IterableDiffers, _ngZone: NgZone);\n constructor();\n // this elementRef is only here for backwards compatibility reasons\n constructor(_elementRef?: ElementRef) {\n if (_elementRef) {\n this.templatedItemsView = _elementRef.nativeElement;\n }\n }\n\n ngAfterContentInit() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('TemplatedItemsView.ngAfterContentInit()');\n }\n\n this.setItemTemplates();\n\n // If an Angular sticky header template is provided, convert it into a\n // core `Template` function. Core will call this to create header views\n // and then assign bindingContext for each section.\n if (this.stickyHeaderTemplateRef && this.templatedItemsView) {\n const angularHeaderTemplate: NsTemplate = () => {\n const viewRef = this.loader.createEmbeddedView(this.stickyHeaderTemplateRef as TemplateRef<ItemContext<any>>);\n const root = getItemViewRoot(viewRef as EmbeddedViewRef<unknown>);\n (root as any)[NG_VIEW] = viewRef;\n return root;\n };\n\n this.templatedItemsView.stickyHeaderTemplate = angularHeaderTemplate;\n }\n }\n\n ngOnDestroy() {\n this.templatedItemsView = null;\n\n if (this._templateMap) {\n this._templateMap.clear();\n }\n }\n\n private setItemTemplates() {\n // The itemTemplateQuery may be changed after list items are added that contain <template> inside,\n // so cache and use only the original template to avoid errors.\n this.fallbackItemTemplate = this.itemTemplateQuery;\n if (this.fallbackItemTemplate && !this._templateMap?.has('default')) {\n // apparently you can create a Core ListView without a template...\n // we also add a fallback default for when the user sets multiple templates but no templateSelector\n this.registerTemplate('default', this.fallbackItemTemplate);\n }\n\n if (this._templateMap) {\n // sometimes templates are registered before loader is ready, so we update here\n this._templateMap.forEach((t) => (t.location = this.loader));\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('Setting templates');\n }\n\n const templates: KeyedTemplate[] = [];\n this._templateMap.forEach((value, key) => {\n templates.push({\n createView: () => null, // we'll handle creation later, otherwise core will create an invalid template\n key,\n });\n });\n this.templatedItemsView.itemTemplates = templates;\n }\n }\n\n public registerTemplate(key: string, template: TemplateRef<ItemContext<T>>) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog(`registerTemplate for key: ${key}, ${this.loader}`);\n }\n\n if (!this._templateMap) {\n this._templateMap = new Map<string, NsTemplatedItem<T>>();\n }\n\n this._templateMap.set(key, new NsTemplatedItem<T>(template, this.loader, (v) => this._viewToTemplate.set(v, key)));\n }\n\n @HostListener('itemLoading', ['$event'])\n @profile\n public onItemLoading(args: ItemEventData) {\n if (!this._templateMap) {\n return;\n }\n const index = args.index;\n const lview: ListView = args.object as ListView;\n const items = lview.items as any;\n\n const isSectioned = lview.sectioned;\n let currentItem: any;\n let absoluteIndex = index;\n\n if (isSectioned) {\n const sectionIndex = this.resolveSectionIndex(args, args.view as View);\n const rowIndex = this.resolveRowIndex(args, args.view as View);\n\n if (sectionIndex === undefined || rowIndex === undefined) {\n return;\n }\n\n currentItem = this.getSectionItem(lview, sectionIndex, rowIndex);\n if (currentItem === undefined || currentItem === null) {\n return;\n }\n\n absoluteIndex = this.computeAbsoluteIndex(lview, sectionIndex, rowIndex);\n } else {\n currentItem = this.getFlatItem(items, index);\n if (currentItem === undefined || currentItem === null) {\n return;\n }\n }\n\n let template: NsTemplatedItem<T>;\n\n if (args.view) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog(`onItemLoading: ${index} - Reusing existing view`);\n }\n\n let templateKey = this._viewToTemplate.get(args.view as View);\n if (!templateKey && args.view instanceof LayoutBase && args.view.getChildrenCount() > 0) {\n templateKey = this._viewToTemplate.get(args.view.getChildAt(0));\n }\n if (!templateKey) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewError(`ViewReference not found for item ${index}. View recycling is not working`);\n }\n return;\n }\n template = this._templateMap.get(templateKey);\n template.update(args.view as View, { index: absoluteIndex, data: currentItem });\n } else {\n const templateKey =\n typeof lview.itemTemplateSelector === 'function'\n ? (lview.itemTemplateSelector as any)(currentItem, absoluteIndex, items)\n : 'default';\n template = this._templateMap.get(templateKey);\n if (!template) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewError(`Template for key '${templateKey}' not found.`);\n }\n return;\n }\n args.view = template.create({ index: absoluteIndex, data: currentItem });\n }\n\n const viewRef = template.getEmbeddedViewRef(args.view as View);\n if (viewRef) {\n this.setupViewRef(viewRef, currentItem, absoluteIndex, args.view as View);\n template.attach(args.view as View);\n }\n\n this._changeDetectorRef.detectChanges();\n }\n\n private resolveSectionIndex(args: ItemEventData, nativeView?: View): number | undefined {\n const eventSection = Number.isInteger((args as any).section) ? (args as any).section : undefined;\n if (eventSection !== undefined) {\n return eventSection;\n }\n const viewSection =\n nativeView && Number.isInteger((nativeView as any)._listViewSectionIndex)\n ? (nativeView as any)._listViewSectionIndex\n : undefined;\n if (viewSection !== undefined) {\n return viewSection;\n }\n return undefined;\n }\n\n private resolveRowIndex(args: ItemEventData, nativeView?: View): number | undefined {\n if (Number.isInteger(args.index)) {\n return args.index;\n }\n const viewRow =\n nativeView && Number.isInteger((nativeView as any)._listViewItemIndex)\n ? (nativeView as any)._listViewItemIndex\n : undefined;\n return viewRow;\n }\n\n private getSectionItem(listView: ListView, sectionIndex: number, rowIndex: number): any {\n if (sectionIndex < 0 || rowIndex < 0) {\n return undefined;\n }\n const sectionItems = (listView as any)._getItemsInSection?.(sectionIndex);\n if (!sectionItems) {\n return undefined;\n }\n if (typeof sectionItems.getItem === 'function') {\n return sectionItems.getItem(rowIndex);\n }\n return sectionItems[rowIndex];\n }\n\n private computeAbsoluteIndex(listView: ListView, sectionIndex: number, rowIndex: number): number {\n let absoluteIndex = rowIndex;\n for (let i = 0; i < sectionIndex; i++) {\n const sectionItems = (listView as any)._getItemsInSection?.(i);\n absoluteIndex += this.getCollectionLength(sectionItems);\n }\n return absoluteIndex;\n }\n\n private getCollectionLength(collection: any): number {\n if (!collection) {\n return 0;\n }\n if (typeof collection.length === 'number') {\n return collection.length;\n }\n if (typeof collection.getCount === 'function') {\n return collection.getCount();\n }\n return 0;\n }\n\n private getFlatItem(items: any, index: number): any {\n if (!items) {\n return undefined;\n }\n if (typeof items.getItem === 'function') {\n return items.getItem(index);\n }\n return Array.isArray(items) ? items[index] : undefined;\n }\n\n public setupViewRef(viewRef: EmbeddedViewRef<ItemContext<T>>, data: T, index: number, nativeElement: View): void {\n const context = viewRef.context;\n this.setupItemView.next({ view: viewRef, nativeElement, data: data, index: index, context: context });\n }\n\n ngDoCheck() {\n if (this._differ) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('ngDoCheck() - execute differ');\n }\n\n const changes = this._differ.diff(this._items as T[]);\n if (changes) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.listViewLog('ngDoCheck() - refresh');\n }\n\n this.templatedItemsView.refresh();\n }\n }\n }\n}\n\nexport type RootLocator = (nodes: Array<unknown>, nestLevel: number) => View;\n\nexport function getItemViewRoot(\n viewRef: EmbeddedViewRef<unknown>,\n rootLocator: RootLocator = extractSingleViewRecursive,\n): View {\n const rootView = rootLocator(viewRef.rootNodes, 0);\n return rootView;\n}\n\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({\n selector: '[nsTemplateKey],[nsTemplateKeys]',\n standalone: true,\n})\nexport class TemplateKeyDirective<T> {\n constructor(\n private templateRef: TemplateRef<T>,\n @Host() @Inject(TEMPLATED_ITEMS_COMPONENT) private comp: TemplatedItemsHost<T>,\n ) {}\n\n @Input()\n set nsTemplateKey(value: string) {\n if (this.comp && this.templateRef) {\n this.comp.registerTemplate(value, this.templateRef);\n }\n }\n @Input()\n set nsTemplateKeys(values: string[]) {\n // single template with multiple keys\n if (this.comp && this.templateRef && values) {\n values.forEach((value) => this.comp.registerTemplate(value, this.templateRef));\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { Frame } from '@nativescript/core';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class FrameService {\n // TODO: Add any methods that are needed to handle frame/page navigation\n getFrame(): Frame {\n return Frame.topmost();\n }\n}\n","import { Frame, NavigationTransition } from '@nativescript/core';\nimport { DefaultUrlSerializer, UrlSegmentGroup, UrlTree, ActivatedRouteSnapshot, Params } from '@angular/router';\n\nexport interface LocationState {\n queryParams: Params;\n segmentGroup: UrlSegmentGroup;\n isRootSegmentGroup: boolean;\n isPageNavigation: boolean;\n frame?: Frame;\n}\n\nexport interface NavigationOptions {\n clearHistory?: boolean;\n animated?: boolean;\n transition?: NavigationTransition;\n replaceUrl?: boolean;\n}\n\nexport class Outlet {\n showingModal: boolean;\n modalNavigationDepth: number;\n parent: Outlet;\n _navigatingBackOutlets = new Set<string>();\n get isPageNavigationBack() {\n return this._navigatingBackOutlets.size > 0;\n }\n set isPageNavigationBack(isBack: boolean) {\n if (!isBack) {\n if (this._navigatingBackOutlets.size > 0) {\n this._navigatingBackOutlets.delete(this._navigatingBackOutlets.values().next().value);\n }\n } else {\n for (const key of this.outletKeys) {\n this._navigatingBackOutlets.add(key);\n }\n }\n }\n\n // More than one key available when using NSEmptyOutletComponent component\n // in module that lazy loads children (loadChildren) and has outlet name.\n outletKeys: Array<string>;\n\n // More than one frame available when using NSEmptyOutletComponent component\n // in module that lazy loads children (loadChildren) and has outlet name.\n frames: Array<Frame> = [];\n // The url path to the Outlet.\n // E.G: the path to Outlet3 that is nested Outlet1(home)->Outlet2(nested1)->Outlet3(nested2)\n // will be 'home/nested1'\n path: string;\n pathByOutlets: string;\n states: Array<LocationState> = [];\n isNSEmptyOutlet: boolean;\n\n // Used in reuse-strategy by its children to determine if they should be detached too.\n shouldDetach = true;\n constructor(outletKey: string, path: string, pathByOutlets: string, modalNavigationDepth?: number) {\n this.outletKeys = [outletKey];\n this.isPageNavigationBack = false;\n this.showingModal = false;\n this.modalNavigationDepth = modalNavigationDepth || 0;\n this.pathByOutlets = pathByOutlets;\n this.path = path;\n }\n\n setOutletKeyNavigatingBack(key: string) {\n const nests = key.split('/');\n this.outletKeys\n .filter((k) => k.split('/').length >= nests.length)\n .forEach((k) => {\n this._navigatingBackOutlets.add(k);\n });\n }\n\n containsFrame(frame: Frame): boolean {\n return this.frames.indexOf(frame) > -1;\n }\n\n peekState(): LocationState {\n if (this.states.length > 0) {\n return this.states[this.states.length - 1];\n }\n return null;\n }\n\n containsTopState(stateUrl: string): boolean {\n const lastState = this.peekState();\n return lastState && lastState.segmentGroup.toString() === stateUrl;\n }\n\n // Search for frame that can go back.\n // Nested 'primary' outlets could result in Outlet with multiple navigatable frames.\n getFrameToBack(): Frame {\n let frame = this.frames[this.frames.length - 1];\n\n if (!this.isNSEmptyOutlet) {\n for (let index = this.frames.length - 1; index >= 0; index--) {\n const currentFrame = this.frames[index];\n if (currentFrame.canGoBack()) {\n frame = currentFrame;\n break;\n }\n }\n }\n\n return frame;\n }\n}\n\nexport const defaultNavOptions: NavigationOptions = {\n clearHistory: false,\n animated: true,\n};\n","import { LocationChangeEvent, LocationStrategy } from '@angular/common';\nimport { Inject, Injectable, Optional, OnDestroy } from '@angular/core';\nimport { ActivatedRouteSnapshot, DefaultUrlSerializer, Params, UrlSegmentGroup, UrlTree } from '@angular/router';\nimport { Frame } from '@nativescript/core';\nimport { START_PATH } from '../../tokens';\nimport { NativeScriptDebug } from '../../trace';\nimport { FrameService } from '../frame.service';\nimport { defaultNavOptions, LocationState, NavigationOptions, Outlet } from './ns-location-utils';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class NSLocationStrategy extends LocationStrategy implements OnDestroy {\n private outlets: Array<Outlet> = [];\n private currentOutlet: Outlet;\n\n private popStateCallbacks = new Array<(_: any) => any>();\n private currentUrlTree: UrlTree;\n\n public _modalNavigationDepth = 0;\n\n constructor(\n private frameService: FrameService,\n @Inject(START_PATH) @Optional() private startPath?: string,\n ) {\n super();\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.constructor()');\n }\n }\n\n getState(): unknown {\n return this.currentOutlet && this.currentOutlet.peekState();\n }\n\n path(): string {\n if (!this.currentUrlTree) {\n return this.startPath || '/';\n }\n\n const state = this.currentOutlet && this.currentOutlet.peekState();\n if (!state) {\n return '/';\n }\n\n const tree = this.currentUrlTree;\n const changedOutlet = this.getSegmentGroupByOutlet(this.currentOutlet);\n\n // Handle case where the user declares a component at path \"/\".\n // The url serializer doesn't parse this url as having a primary outlet.\n if (state.isRootSegmentGroup) {\n tree.root = state.segmentGroup;\n } else if (changedOutlet) {\n this.updateSegmentGroup(tree.root, changedOutlet, state.segmentGroup);\n }\n\n const urlSerializer = new DefaultUrlSerializer();\n tree.queryParams = state.queryParams;\n const url = urlSerializer.serialize(tree);\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.path(): ' + url);\n }\n return url;\n }\n\n prepareExternalUrl(internal: string): string {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.prepareExternalUrl() internal: ' + internal);\n }\n return internal;\n }\n\n pushState(state: any, title: string, url: string, queryParams: string): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.pushState state: ' + `${state}, title: ${title}, url: ${url}, queryParams: ${queryParams}`);\n }\n this.pushStateInternal(state, title, url, queryParams);\n }\n\n pushStateInternal(state: any, title: string, url: string, queryParams: string, replace = false): void {\n const urlSerializer = new DefaultUrlSerializer();\n this.currentUrlTree = urlSerializer.parse(url);\n const urlTreeRoot = this.currentUrlTree.root;\n\n // Handle case where the user declares a component at path \"/\".\n // The url serializer doesn't parse this url as having a primary outlet.\n if (!Object.keys(urlTreeRoot.children).length) {\n const segmentGroup = this.currentUrlTree && this.currentUrlTree.root;\n const outletKey = this.getOutletKey(this.getSegmentGroupFullPath(segmentGroup), 'primary');\n const outlet = this.findOutlet(outletKey);\n\n if (outlet && this.updateStates(outlet, segmentGroup, this.currentUrlTree.queryParams, replace)) {\n this.currentOutlet = outlet; // If states updated\n } else if (!outlet) {\n // tslint:disable-next-line:max-line-length\n const rootOutlet = this.createOutlet('primary', null, segmentGroup, null, null, this.currentUrlTree.queryParams);\n this.currentOutlet = rootOutlet;\n }\n\n this.currentOutlet.peekState().isRootSegmentGroup = true;\n return;\n }\n\n const queue = [];\n let currentTree = <any>urlTreeRoot;\n\n while (currentTree) {\n Object.keys(currentTree.children).forEach((outletName) => {\n const currentSegmentGroup = currentTree.children[outletName];\n currentSegmentGroup.outlet = outletName;\n currentSegmentGroup.root = urlTreeRoot;\n\n const outletPath = this.getSegmentGroupFullPath(currentTree);\n const outletKey = this.getOutletKey(outletPath, outletName);\n let outlet = this.findOutlet(outletKey);\n\n const parentOutletName = currentTree.outlet || '';\n const parentOutletPath = this.getSegmentGroupFullPath(currentTree.parent);\n const parentOutletKey = this.getOutletKey(parentOutletPath, parentOutletName);\n const parentOutlet = this.findOutlet(parentOutletKey);\n\n const containsLastState = outlet && outlet.containsTopState(currentSegmentGroup.toString());\n if (!outlet) {\n // tslint:disable-next-line:max-line-length\n outlet = this.createOutlet(outletKey, outletPath, currentSegmentGroup, parentOutlet, this._modalNavigationDepth, this.currentUrlTree.queryParams);\n this.currentOutlet = outlet;\n } else if (this._modalNavigationDepth > 0 && outlet.showingModal && !containsLastState) {\n // Navigation inside modal view.\n this.upsertModalOutlet(outlet, currentSegmentGroup, this.currentUrlTree.queryParams, replace);\n } else {\n outlet.parent = parentOutlet;\n\n if (this.updateStates(outlet, currentSegmentGroup, this.currentUrlTree.queryParams, replace)) {\n this.currentOutlet = outlet; // If states updated\n }\n }\n\n queue.push(currentSegmentGroup);\n });\n\n currentTree = queue.shift();\n }\n }\n\n replaceState(state: any, title: string, url: string, queryParams: string): void {\n const states = this.currentOutlet && this.currentOutlet.states;\n\n if (states && states.length > 0) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.replaceState changing existing state: ' + `${state}, title: ${title}, url: ${url}, queryParams: ${queryParams}`);\n }\n this.pushStateInternal(state, title, url, queryParams, true);\n } else {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.replaceState pushing new state: ' + `${state}, title: ${title}, url: ${url}, queryParams: ${queryParams}`);\n }\n this.pushStateInternal(state, title, url, queryParams);\n }\n }\n\n forward(): void {\n throw new Error('NSLocationStrategy.forward() - not implemented');\n }\n\n back(outlet?: Outlet, frame?: Frame): void {\n this.currentOutlet = outlet || this.currentOutlet;\n\n if (this.currentOutlet.isPageNavigationBack) {\n const states = this.currentOutlet.states;\n // We are navigating to the previous page\n // clear the stack until we get to a page navigation state\n let state = states.pop();\n let count = 1;\n\n if (frame) {\n while (state.frame && state.frame !== frame) {\n state = states.pop();\n count++;\n }\n }\n\n while (!state.isPageNavigation) {\n state = states.pop();\n count++;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`NSLocationStrategy.back() while navigating back. States popped: ${count}`);\n }\n this.callPopState(state, true);\n } else {\n const state = this.currentOutlet.peekState();\n if (state && state.isPageNavigation) {\n // This was a page navigation - so navigate through frame.\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.back() while not navigating back but top' + ' state is page - will call frame.goBack()');\n }\n\n if (!outlet) {\n const topmostFrame = this.frameService.getFrame();\n this.currentOutlet = this.getOutletByFrame(topmostFrame) || this.currentOutlet;\n }\n\n const frameToBack: Frame = this.currentOutlet.getFrameToBack();\n if (frameToBack) {\n frameToBack.goBack();\n }\n } else {\n // Nested navigation - just pop the state\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.back() while not navigating back but top' + ' state is not page - just pop');\n }\n\n this.callPopState(this.currentOutlet.states.pop(), true);\n }\n }\n }\n\n canGoBack(outlet?: Outlet) {\n outlet = outlet || this.currentOutlet;\n return outlet.states.length > 1;\n }\n\n onPopState(fn: (_: any) => any): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.onPopState');\n }\n this.popStateCallbacks.push(fn);\n }\n\n getBaseHref(): string {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.getBaseHref()');\n }\n return '';\n }\n\n private callPopState(state: LocationState, pop: boolean = true, outlet?: Outlet) {\n outlet = outlet || this.currentOutlet;\n const urlSerializer = new DefaultUrlSerializer();\n const changedOutlet = this.getSegmentGroupByOutlet(outlet);\n\n if (state && changedOutlet) {\n this.updateSegmentGroup(this.currentUrlTree.root, changedOutlet, state.segmentGroup);\n } else if (changedOutlet) {\n // when closing modal view there are scenarios (e.g. root viewContainerRef) when we need\n // to clean up the named page router outlet to make sure we will open the modal properly again if needed.\n this.updateSegmentGroup(this.currentUrlTree.root, changedOutlet, null);\n }\n\n const url = urlSerializer.serialize(this.currentUrlTree);\n const change: LocationChangeEvent = { state, type: 'popstate' };\n for (const fn of this.popStateCallbacks) {\n fn(change);\n }\n }\n\n public toString() {\n let result = [];\n\n this.outlets.forEach((outlet) => {\n const outletStates = outlet.states;\n const outletLog = outletStates\n // tslint:disable-next-line:max-line-length\n .map((v, i) => `${outlet.outletKeys}.${i}.[${v.isPageNavigation ? 'PAGE' : 'INTERNAL'}].[${outlet.modalNavigationDepth ? 'MODAL' : 'BASE'}] \"${v.segmentGroup.toString()}\"`)\n .reverse();\n\n result = result.concat(outletLog);\n });\n\n return result.join('\\n');\n }\n\n // Methods for syncing with page navigation in PageRouterOutlet\n public _beginBackPageNavigation(frame: Frame, outletKey: string) {\n const outlet: Outlet = this.getOutletByFrame(frame);\n\n if (!outlet || outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerError('Attempted to call startGoBack while going back.');\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.startGoBack()');\n }\n outlet.setOutletKeyNavigatingBack(outletKey);\n // outlet.isPageNavigationBack = true;\n // we find all the children and also set their isPageNavigationBack\n this.outlets\n .filter((o) => {\n let parent = o.parent;\n while (parent) {\n if (parent === outlet) {\n return true;\n }\n parent = parent.parent;\n }\n return false;\n })\n .forEach((o) => (o.isPageNavigationBack = true));\n\n this.currentOutlet = outlet;\n }\n\n public _finishBackPageNavigation(frame: Frame) {\n const outlet: Outlet = this.getOutletByFrame(frame);\n\n if (!outlet || !outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerError('Attempted to call endGoBack while not going back.');\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.finishBackPageNavigation()');\n }\n outlet.isPageNavigationBack = false;\n }\n\n public _beginModalNavigation(frame: Frame): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy._beginModalNavigation()');\n }\n\n this.currentOutlet = this.getOutletByFrame(frame) || this.currentOutlet;\n\n // It is possible to have frame, but not corresponding Outlet, if\n // showing modal dialog on app.component.ts ngOnInit() e.g. In that case\n // the modal is treated as none modal navigation.\n if (this.currentOutlet) {\n this.currentOutlet.showingModal = true;\n this._modalNavigationDepth++;\n }\n }\n\n public _closeModalNavigation() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.closeModalNavigation()');\n }\n\n const isShowingModal = this._modalNavigationDepth > 0;\n\n if (isShowingModal) {\n this._modalNavigationDepth--;\n }\n\n // currentOutlet should be the one that corresponds to the topmost frame\n const topmostOutlet = this.getOutletByFrame(this.frameService.getFrame());\n const outlet = this.findOutletByModal(this._modalNavigationDepth, isShowingModal) || topmostOutlet;\n\n if (outlet) {\n this.currentOutlet = outlet;\n this.currentOutlet.showingModal = false;\n this.callPopState(this.currentOutlet.peekState(), false);\n // this is needed because angular does a setTimeout on onPopState, so if we don't do this we might end up with inconsistent state\n return new Promise((resolve) => setTimeout(resolve, 0));\n }\n }\n\n public _beginPageNavigation(frame: Frame, options?: NavigationOptions): NavigationOptions {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy._beginPageNavigation()');\n }\n\n this.currentOutlet = this.getOutletByFrame(frame) || this.currentOutlet;\n const lastState = this.currentOutlet.peekState();\n\n if (lastState) {\n lastState.isPageNavigation = true;\n }\n\n const navOptions = options || defaultNavOptions;\n\n if (navOptions.clearHistory) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy._beginPageNavigation clearing states history');\n }\n this.currentOutlet.states = [lastState];\n }\n return navOptions;\n }\n\n public _getOutlets(): Array<Outlet> {\n return this.outlets;\n }\n\n updateOutletFrame(outlet: Outlet, frame: Frame, isEmptyOutletFrame: boolean) {\n const lastState = outlet.peekState();\n\n if (lastState && !lastState.frame && !isEmptyOutletFrame) {\n lastState.frame = frame;\n }\n\n if (!outlet.containsFrame(frame)) {\n outlet.frames.push(frame);\n }\n this.currentOutlet = outlet;\n }\n\n clearOutlet(frame: Frame) {\n this.outlets = this.outlets.filter((currentOutlet) => {\n let isEqualToCurrent;\n\n if (this.currentOutlet) {\n isEqualToCurrent = currentOutlet.pathByOutlets === this.currentOutlet.pathByOutlets;\n }\n\n // Remove outlet from the url tree.\n if (currentOutlet.containsFrame(frame) && !isEqualToCurrent) {\n this.callPopState(null, true, currentOutlet);\n }\n\n // Skip frames filtering since currentOutlet is <router-outlet> when no frames available.\n if (currentOutlet.frames.length && !currentOutlet.isNSEmptyOutlet) {\n currentOutlet.frames = currentOutlet.frames.filter((currentFrame) => currentFrame !== frame);\n return currentOutlet.frames.length;\n }\n\n return !currentOutlet.containsFrame(frame);\n });\n }\n\n getSegmentGroupFullPath(segmentGroup: UrlSegmentGroup): string {\n let fullPath = '';\n\n while (segmentGroup) {\n const url = segmentGroup.toString();\n\n if (fullPath) {\n fullPath = (url ? url + '/' : '') + fullPath;\n } else {\n fullPath = url;\n }\n\n segmentGroup = segmentGroup.parent;\n }\n\n return fullPath;\n }\n\n getRouteFullPath(currentRoute: any): string {\n const outletName = currentRoute.outlet;\n let fullPath;\n\n currentRoute = currentRoute.parent;\n while (currentRoute) {\n const urls = currentRoute.url.value || currentRoute.url;\n let url = urls;\n\n if (Array.isArray(urls)) {\n url = url.join('/');\n }\n\n fullPath = fullPath ? (url ? url + '/' : url) + fullPath : url;\n currentRoute = currentRoute.parent;\n }\n\n return fullPath ? fullPath + '-' + outletName : outletName;\n }\n\n getPathByOutlets(urlSegmentGroup: any): string {\n if (!urlSegmentGroup) {\n return '';\n }\n\n let pathToOutlet;\n let lastPath = urlSegmentGroup.outlet || 'primary';\n let parent = urlSegmentGroup.parent;\n\n while (parent && urlSegmentGroup.root !== parent) {\n if (parent && parent.outlet !== lastPath) {\n if (lastPath === 'primary') {\n lastPath = parent.outlet;\n } else {\n lastPath = parent.outlet;\n pathToOutlet = lastPath + '-' + (pathToOutlet || urlSegmentGroup.outlet);\n }\n }\n\n parent = parent.parent;\n }\n\n return pathToOutlet || lastPath;\n }\n\n findOutlet(outletKey: string, activatedRouteSnapshot?: ActivatedRouteSnapshot): Outlet {\n let outlet: Outlet = this.outlets.find((currentOutlet) => {\n const equalModalDepth = currentOutlet.modalNavigationDepth === this._modalNavigationDepth;\n return equalModalDepth && currentOutlet.outletKeys.indexOf(outletKey) > -1;\n });\n\n // No Outlet with the given outletKey could happen when using nested unnamed p-r-o\n // primary -> primary -> prymary\n if (!outlet && activatedRouteSnapshot) {\n const pathByOutlets = this.getPathByOutlets(activatedRouteSnapshot);\n outlet = this.outlets.find((currentOutlet) => {\n const equalModalDepth = currentOutlet.modalNavigationDepth === this._modalNavigationDepth;\n return equalModalDepth && currentOutlet.pathByOutlets === pathByOutlets;\n });\n }\n\n return outlet;\n }\n\n private findOutletByModal(modalNavigation: number, isShowingModal?: boolean): Outlet {\n return this.outlets.find((outlet) => {\n const equalModalDepth = outlet.modalNavigationDepth === modalNavigation;\n return isShowingModal ? equalModalDepth && outlet.showingModal : equalModalDepth;\n });\n }\n\n private getOutletByFrame(frame: Frame): Outlet {\n let outlet;\n\n for (let index = 0; index < this.outlets.length; index++) {\n const currentOutlet = this.outlets[index];\n\n if (currentOutlet.containsFrame(frame)) {\n outlet = currentOutlet;\n break;\n }\n }\n\n return outlet;\n }\n\n private updateStates(outlet: Outlet, currentSegmentGroup: UrlSegmentGroup, queryParams: Params, replace = false): boolean {\n const isNewPage = outlet.states.length === 0;\n const lastState = outlet.states[outlet.states.length - 1];\n const equalStateUrls = outlet.containsTopState(currentSegmentGroup.toString());\n\n const locationState: LocationState = {\n segmentGroup: currentSegmentGroup,\n isRootSegmentGroup: false,\n isPageNavigation: isNewPage,\n queryParams: { ...queryParams },\n };\n\n if (!lastState || !equalStateUrls) {\n if (replace) {\n outlet.states.pop();\n }\n outlet.states.push(locationState);\n\n // Update last state segmentGroup of parent Outlet.\n if (this._modalNavigationDepth === 0 && !outlet.showingModal) {\n this.updateParentsStates(outlet, currentSegmentGroup.parent);\n }\n\n return true;\n } else {\n if (lastState && equalStateUrls) {\n // update query params for last state\n lastState.queryParams = { ...queryParams };\n }\n }\n\n return false;\n }\n\n private updateParentsStates(outlet: Outlet, newSegmentGroup: UrlSegmentGroup) {\n let parentOutlet = outlet.parent;\n\n // Update parents lastState segmentGroups\n while (parentOutlet && newSegmentGroup) {\n const state = parentOutlet.peekState();\n\n if (state) {\n state.segmentGroup = newSegmentGroup;\n newSegmentGroup = newSegmentGroup.parent;\n parentOutlet = parentOutlet.parent;\n }\n }\n }\n\n // tslint:disable-next-line:max-line-length\n private createOutlet(outletKey: string, path: string, segmentGroup: any, parent: Outlet, modalNavigation?: number, queryParams: Params = {}): Outlet {\n const pathByOutlets = this.getPathByOutlets(segmentGroup);\n const newOutlet = new Outlet(outletKey, path, pathByOutlets, modalNavigation);\n\n const locationState: LocationState = {\n segmentGroup: segmentGroup,\n isRootSegmentGroup: false,\n isPageNavigation: true, // It is a new OutletNode.\n queryParams: { ...queryParams },\n };\n\n newOutlet.states = [locationState];\n newOutlet.parent = parent;\n this.outlets.push(newOutlet);\n\n // Update last state segmentGroup of parent Outlet.\n if (this._modalNavigationDepth === 0 && !newOutlet.showingModal) {\n this.updateParentsStates(newOutlet, segmentGroup.parent);\n }\n\n return newOutlet;\n }\n\n private getSegmentGroupByOutlet(outlet: Outlet): UrlSegmentGroup {\n const pathList = outlet.pathByOutlets.split('-');\n let segmentGroup = this.currentUrlTree.root;\n let pathToOutlet;\n\n for (let index = 0; index < pathList.length; index++) {\n const currentPath = pathList[index];\n const childrenCount = Object.keys(segmentGroup.children).length;\n\n if (childrenCount && segmentGroup.children[currentPath]) {\n const url = segmentGroup.toString();\n pathToOutlet = pathToOutlet ? pathToOutlet + '/' + url : url;\n segmentGroup = segmentGroup.children[currentPath];\n } else {\n // If no child outlet found with the given name - forget about all previously found outlets.\n // example: seaching for 'primary-second-primary' shouldn't return 'primary-second'\n // if no 'primary' child available on 'second'.\n segmentGroup = null;\n break;\n }\n }\n\n // Paths should also match since there could be another Outlet\n // with the same pathByOutlets but different url path.\n if (segmentGroup && outlet.path && pathToOutlet && outlet.path !== pathToOutlet) {\n segmentGroup = null;\n }\n\n return segmentGroup;\n }\n\n // Traversal and replacement of segmentGroup.\n private updateSegmentGroup(rootNode: any, oldSegmentGroup: UrlSegmentGroup, newSegmentGroup: UrlSegmentGroup) {\n const queue = [];\n let currentTree = rootNode;\n\n while (currentTree) {\n Object.keys(currentTree.children).forEach((outletName) => {\n if (currentTree.children[outletName] === oldSegmentGroup) {\n if (newSegmentGroup) {\n currentTree.children[outletName] = newSegmentGroup;\n } else {\n delete currentTree.children[outletName];\n }\n }\n queue.push(currentTree.children[outletName]);\n });\n\n currentTree = queue.shift();\n }\n }\n\n private upsertModalOutlet(parentOutlet: Outlet, segmentedGroup: UrlSegmentGroup, queryParams: Params, replace = false) {\n let currentModalOutlet = this.findOutletByModal(this._modalNavigationDepth);\n\n // We want to treat every p-r-o as a standalone Outlet.\n if (!currentModalOutlet) {\n if (this._modalNavigationDepth > 1) {\n // The parent of the current Outlet should be the previous opened modal (if any).\n parentOutlet = this.findOutletByModal(this._modalNavigationDepth - 1);\n }\n\n // No currentModalOutlet available when opening 'primary' p-r-o.\n const outletName = 'primary';\n const outletPath = parentOutlet.peekState().segmentGroup.toString();\n const outletKey = this.getOutletKey(outletPath, outletName);\n // tslint:disable-next-line:max-line-length\n currentModalOutlet = this.createOutlet(outletKey, outletPath, segmentedGroup, parentOutlet, this._modalNavigationDepth, queryParams);\n this.currentOutlet = currentModalOutlet;\n } else if (this.updateStates(currentModalOutlet, segmentedGroup, queryParams, replace)) {\n this.currentOutlet = currentModalOutlet; // If states updated\n }\n }\n\n private getOutletKey(path: string, outletName: string): string {\n return path ? path + '-' + outletName : outletName;\n }\n\n ngOnDestroy() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NSLocationStrategy.ngOnDestroy()');\n }\n\n this.outlets = [];\n this.currentOutlet = null;\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, Injectable, Injector, NgModuleRef, NgZone, Type, ViewContainerRef } from '@angular/core';\nimport { Application, ContentView, Frame, ShowModalOptions, View, ViewBase } from '@nativescript/core';\nimport { Subject } from 'rxjs';\nimport { AppHostAsyncView, AppHostView } from '../../app-host-view';\nimport { DetachedLoader } from '../../cdk/detached-loader';\nimport { ComponentPortal } from '../../cdk/portal/common';\nimport { NativeScriptDomPortalOutlet } from '../../cdk/portal/nsdom-portal-outlet';\nimport { once } from '../../utils/general';\nimport { NgViewRef } from '../../view-refs';\nimport { NSLocationStrategy } from '../router/ns-location-strategy';\n\nexport type BaseShowModalOptions = Pick<ShowModalOptions, Exclude<keyof ShowModalOptions, 'closeCallback' | 'context'>>;\n\nexport interface ModalDialogOptions extends BaseShowModalOptions {\n context?: any;\n viewContainerRef?: ViewContainerRef;\n moduleRef?: NgModuleRef<any>;\n target?: View;\n /**\n * Use context data as component instance properties\n */\n useContextAsComponentProps?: boolean;\n}\n\nexport interface ShowDialogOptions extends ModalDialogOptions {\n containerRef?: ViewContainerRef;\n /**\n * which container to attach the change detection\n * if not specified, attaches to the ApplicationRef (recommended)\n */\n attachToContainerRef?: ViewContainerRef;\n injector: Injector;\n context: any;\n doneCallback;\n pageFactory?: any;\n parentView: ViewBase;\n resolver: ComponentFactoryResolver;\n type: Type<any>;\n}\n\nexport class ModalDialogParams {\n constructor(public context: any = {}, public closeCallback: (...args) => any) {}\n}\n\n@Injectable()\nexport class ModalDialogService {\n /**\n * Any opened ModalDialogParams in order of when they were opened (Most recent on top).\n * This can be used when you need access to ModalDialogParams outside of the component which had them injected.\n * Each is popped off as modals are closed.\n */\n openedModalParams: Array<ModalDialogParams>;\n _closed$: Subject<ModalDialogParams>;\n\n constructor(private location: NSLocationStrategy, private zone: NgZone, private appRef: ApplicationRef, private defaultInjector: Injector) {}\n\n /**\n * Emits anytime a modal is closed with the ModalDialogParams which were injected into the component which is now closing.\n * For example, can be used to wire up Rx flows outside the scope of just the component being handled.\n */\n get closed$() {\n if (!this._closed$) {\n this._closed$ = new Subject();\n }\n return this._closed$;\n }\n\n public showModal(type: Type<any>, options: ModalDialogOptions = {}): Promise<any> {\n // if (!options.viewContainerRef) {\n // throw new Error('No viewContainerRef: ' + 'Make sure you pass viewContainerRef in ModalDialogOptions.');\n // }\n\n let parentView = options.viewContainerRef?.element.nativeElement || Application.getRootView();\n if (options.target) {\n parentView = options.target;\n }\n\n if ((parentView instanceof AppHostView || parentView instanceof AppHostAsyncView) && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future modal views.\n if (parentView._ngDialogRoot) {\n parentView = parentView._ngDialogRoot;\n }\n\n // resolve from particular module (moduleRef)\n // or from same module as parentView (viewContainerRef)\n const componentInjector = options.moduleRef?.injector || options.viewContainerRef?.injector || this.defaultInjector;\n const resolver = componentInjector.get(ComponentFactoryResolver);\n\n let frame = parentView;\n if (!(parentView instanceof Frame)) {\n frame = (parentView.page && parentView.page.frame) || Frame.topmost();\n }\n\n this.location?._beginModalNavigation(frame);\n\n return new Promise((resolve, reject) => {\n setTimeout(() => {\n try {\n this._showDialog({\n ...options,\n containerRef: options.viewContainerRef,\n injector: componentInjector,\n context: options.context,\n doneCallback: resolve,\n parentView,\n resolver,\n type,\n });\n } catch (err) {\n reject(err);\n }\n }, 10);\n });\n }\n\n private _showDialog(options: ShowDialogOptions): void {\n let componentViewRef: NgViewRef<unknown>;\n let detachedLoaderRef: ComponentRef<DetachedLoader>;\n let portalOutlet: NativeScriptDomPortalOutlet;\n\n const closeCallback = once(async (...args) => {\n options.doneCallback.apply(undefined, args);\n if (componentViewRef) {\n componentViewRef.firstNativeLikeView.closeModal();\n const params = this.openedModalParams.pop();\n if (this._closed$) {\n this._closed$.next(params);\n }\n await this.location._closeModalNavigation();\n if (detachedLoaderRef || portalOutlet) {\n this.zone.run(() => {\n portalOutlet?.dispose();\n detachedLoaderRef?.instance.detectChanges();\n detachedLoaderRef?.destroy();\n });\n }\n }\n });\n\n const modalParams = new ModalDialogParams(options.context, closeCallback);\n if (!this.openedModalParams) {\n this.openedModalParams = [];\n }\n this.openedModalParams.push(modalParams);\n\n const childInjector = Injector.create({\n providers: [{ provide: ModalDialogParams, useValue: modalParams }],\n parent: options.injector,\n });\n this.zone.run(() => {\n // if we ever support templates in the old API\n // if(options.templateRef) {\n // const detachedFactory = options.resolver.resolveComponentFactory(DetachedLoader);\n // if(options.attachToContainerRef) {\n // detachedLoaderRef = options.attachToContainerRef.createComponent(detachedFactory, 0, childInjector, null);\n // } else {\n // detachedLoaderRef = detachedFactory.create(childInjector); // this DetachedLoader is **completely** detached\n // this.appRef.attachView(detachedLoaderRef.hostView); // we attach it to the applicationRef, so it becomes a \"root\" view in angular's hierarchy\n // }\n // detachedLoaderRef.changeDetectorRef.detectChanges(); // force a change detection\n // detachedLoaderRef.instance.createTemplatePortal(options.templateRef);\n // }\n const targetView = new ContentView();\n const portal = new ComponentPortal(options.type);\n portalOutlet = new NativeScriptDomPortalOutlet(targetView, options.resolver, this.appRef, childInjector);\n const componentRef = portalOutlet.attach(portal);\n componentRef.changeDetectorRef.detectChanges();\n componentViewRef = new NgViewRef(componentRef);\n if (options.useContextAsComponentProps && options.context) {\n for (const key in options.context) {\n (<ComponentRef<any>>componentViewRef.ref).instance[key] = options.context[key];\n }\n }\n if (componentViewRef !== componentRef.location.nativeElement) {\n componentRef.location.nativeElement._ngDialogRoot = componentViewRef.firstNativeLikeView;\n }\n // if we don't detach the view from its parent, ios gets mad\n componentViewRef.detachNativeLikeView();\n options.parentView.showModal(componentViewRef.firstNativeLikeView, { ...options, closeCallback });\n });\n }\n}\n","/**\n * This decorator delays a potentially unsafe event (like loaded/unloaded that will sometimes be called before ngOnInit) to be handled safely by ensuring it's called after a lifecycle hook.\n * @param runAfterEvent event/function call to wait until the event can be fired ('ngOnInit', 'ngAfterViewInit', ...)\n * @param options Optional event handling params\n * @returns decorator\n */\nexport function NativeScriptNgSafeEvent(\n runAfterEvent: string,\n options: {\n onlyLast?: boolean;\n onlyFirst?: boolean;\n alwaysRunBefore?: string;\n } = {},\n) {\n const event = runAfterEvent;\n return function (target: unknown, propertyKey: string, descriptor: PropertyDescriptor) {\n type NgSafeType = {\n events: {\n [key: string]: {\n done: boolean;\n originalDelegate: (...args: unknown[]) => unknown;\n buffer: Array<{\n key: string;\n fn: (...args: unknown[]) => unknown;\n }>;\n };\n };\n runBefore: {\n [propertyKey: string]: (...args: unknown[]) => unknown;\n };\n };\n function getNgSafe(): NgSafeType {\n return target['__ng_safe__'];\n }\n if (!target['__ng_safe__']) {\n const defaultNgSafe: NgSafeType = {\n events: {},\n runBefore: {},\n };\n target['__ng_safe__'] = defaultNgSafe;\n }\n if (!getNgSafe().events[event]) {\n getNgSafe().events[event] = {\n done: false,\n buffer: [],\n originalDelegate: target[event],\n };\n target[event] = function (...args) {\n try {\n if (getNgSafe().events[event].originalDelegate) {\n return getNgSafe().events[event].originalDelegate.apply(this, args);\n }\n } finally {\n getNgSafe().events[event].done = true;\n getNgSafe().events[event].buffer.forEach((fn) => fn.fn());\n getNgSafe().events[event].buffer = [];\n }\n };\n }\n\n if (options.alwaysRunBefore) {\n getNgSafe().runBefore[propertyKey] = target[options.alwaysRunBefore];\n\n target[`${options.alwaysRunBefore}`] = function (...args) {\n getNgSafe()\n .events[event].buffer.filter((v) => v.key === propertyKey)\n .forEach((fn) => fn.fn());\n getNgSafe().events[event].buffer = getNgSafe().events[event].buffer.filter((v) => v.key !== propertyKey);\n if (getNgSafe().runBefore[propertyKey]) {\n return getNgSafe().runBefore[propertyKey].apply(this, args);\n }\n };\n }\n\n const oldFn = descriptor.value;\n descriptor.value = function (...args) {\n if (getNgSafe().events[event].done) {\n return oldFn.apply(this, args);\n }\n let shouldPush = true;\n if (options.onlyFirst || options.onlyLast) {\n for (let i = 0; i < getNgSafe().events[event].buffer.length; i++) {\n if (getNgSafe().events[event].buffer[i].key === propertyKey) {\n if (options.onlyFirst) {\n shouldPush = false;\n break;\n }\n if (options.onlyLast) {\n getNgSafe().events[event].buffer.splice(i, 1);\n break;\n }\n }\n }\n }\n if (shouldPush) {\n getNgSafe().events[event].buffer.push({\n key: propertyKey,\n fn: oldFn.bind(this, args),\n });\n }\n };\n };\n}\n","import { AfterViewInit, Directive, ElementRef, Input, OnInit, TemplateRef, ViewContainerRef } from '@angular/core';\nimport { TabView, TabViewItem } from '@nativescript/core';\n\nimport { InvisibleNode } from '../../views';\nimport { NativeScriptDebug } from '../../trace';\nimport { isBlank } from '../../utils';\n\ntype TextTransform = 'initial' | 'none' | 'capitalize' | 'uppercase' | 'lowercase';\nexport interface TabViewItemDef {\n title?: string;\n iconSource?: string;\n textTransform?: TextTransform;\n role?: string;\n}\n\n@Directive({\n selector: 'TabView', // eslint-disable-line @angular-eslint/directive-selector\n standalone: true,\n})\nexport class TabViewDirective implements AfterViewInit {\n public tabView: TabView;\n private _selectedIndex: number;\n private viewInitialized: boolean;\n\n @Input()\n get selectedIndex(): number {\n return this._selectedIndex;\n }\n\n set selectedIndex(value) {\n this._selectedIndex = value;\n if (this.viewInitialized) {\n this.tabView.selectedIndex = this._selectedIndex;\n }\n }\n\n constructor(element: ElementRef) {\n this.tabView = element.nativeElement;\n }\n\n ngAfterViewInit() {\n this.viewInitialized = true;\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.rendererLog('this._selectedIndex: ' + this._selectedIndex);\n }\n if (!isBlank(this._selectedIndex)) {\n this.tabView.selectedIndex = this._selectedIndex;\n }\n }\n}\n\n@Directive({\n selector: '[tabItem]', // eslint-disable-line @angular-eslint/directive-selector\n standalone: true,\n})\nexport class TabViewItemDirective implements OnInit {\n private item: TabViewItem;\n private _config: TabViewItemDef;\n\n constructor(private owner: TabViewDirective, private templateRef: TemplateRef<any>, private viewContainer: ViewContainerRef) {}\n\n @Input('tabItem')\n set config(config: TabViewItemDef) {\n if (!this._config || this._config.iconSource !== config.iconSource || this._config.title !== config.title || this._config.textTransform !== config.textTransform || this._config.role !== config.role) {\n this._config = config;\n this.applyConfig();\n }\n }\n\n get config(): TabViewItemDef {\n // tslint:disable-line:no-input-rename\n return this._config || {};\n }\n\n @Input()\n set title(title: string) {\n this.config = Object.assign(this.config, { title });\n }\n\n get title() {\n return this.config.title;\n }\n\n @Input()\n set iconSource(iconSource: string) {\n this.config = Object.assign(this.config, { iconSource });\n }\n\n get iconSource() {\n return this.config.iconSource;\n }\n\n @Input()\n set textTransform(textTransform: TextTransform) {\n this.config = Object.assign(this.config, { textTransform });\n }\n\n get textTransform() {\n return this.config.textTransform;\n }\n\n private ensureItem() {\n if (!this.item) {\n this.item = new TabViewItem();\n }\n }\n\n private applyConfig() {\n this.ensureItem();\n\n if (this.config.title) {\n this.item.title = this.config.title;\n }\n\n if (this.config.iconSource) {\n this.item.iconSource = this.config.iconSource;\n }\n\n // TabViewItem textTransform has a default value for Android that kick in\n // only if no value (even a null value) is set.\n if (this.config.textTransform) {\n this.item.textTransform = this.config.textTransform;\n }\n\n if (this.config.role) {\n this.item.role = this.config.role;\n }\n }\n\n ngOnInit() {\n this.applyConfig();\n\n const viewRef = this.viewContainer.createEmbeddedView(this.templateRef);\n // Filter out text nodes and comments\n const realViews = viewRef.rootNodes.filter((node) => !(node instanceof InvisibleNode));\n\n if (realViews.length > 0) {\n this.item.view = realViews[0];\n\n const newItems = (this.owner.tabView.items || []).concat([this.item]);\n this.owner.tabView.items = newItems;\n }\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Inject } from '@angular/core';\nimport { IDevice, platformNames } from '@nativescript/core';\nimport { DEVICE } from '../../tokens';\n\n@Component({\n selector: 'android',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class AndroidFilterComponent {\n public show: boolean;\n\n constructor(@Inject(DEVICE) device: IDevice) {\n this.show = device.os === platformNames.android;\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Inject } from '@angular/core';\nimport { IDevice, platformNames } from '@nativescript/core';\nimport { DEVICE } from '../../tokens';\n\n@Component({\n selector: 'ios',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class IOSFilterComponent {\n public show: boolean;\n constructor(@Inject(DEVICE) device: IDevice) {\n this.show = device.os === platformNames.ios;\n }\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'apple',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class AppleFilterComponent {\n public show = __APPLE__;\n}\n","/* eslint-disable @angular-eslint/component-selector */\nimport { Component, Inject } from '@angular/core';\nimport { platformNames, IDevice } from '@nativescript/core';\nimport { DEVICE } from '../../tokens';\n\n@Component({\n selector: 'visionos',\n template: `@if (show) { \n <ng-content></ng-content>\n }`,\n standalone: true,\n})\nexport class VisionOSFilterComponent {\n public show: boolean;\n\n constructor(@Inject(DEVICE) device: IDevice) {\n // Note: casting any to be backwards compatible\n // Available in 8.6+ only\n this.show = device.os === (platformNames as any).visionos;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NO_ERRORS_SCHEMA, NgModule } from '@angular/core';\nimport { FramePageModule } from './cdk/frame-page/frame-page.module';\nimport { ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective } from './cdk/action-bar';\nimport { ListViewComponent, TemplateKeyDirective } from './cdk/list-view/list-view.component';\nimport { registerNativeScriptViewComponents } from './element-registry';\nimport { ModalDialogService } from './legacy/directives/dialogs';\nimport { TabViewDirective, TabViewItemDirective } from './cdk/tab-view';\nimport { AndroidFilterComponent } from './cdk/platform-filters/android-filter.component';\nimport { IOSFilterComponent } from './cdk/platform-filters/ios-filter.component';\nimport { AppleFilterComponent } from './cdk/platform-filters/apple-filter.component';\nimport { VisionOSFilterComponent } from './cdk/platform-filters/vision-filter.component';\n\nconst CDK_COMPONENTS = [ActionBarComponent, ActionBarScope, ActionItemDirective, NavigationButtonDirective, ListViewComponent, TemplateKeyDirective, TabViewDirective, TabViewItemDirective, AndroidFilterComponent, IOSFilterComponent, AppleFilterComponent, VisionOSFilterComponent];\n\nregisterNativeScriptViewComponents();\n\n@NgModule({\n imports: [CommonModule, FramePageModule, ...CDK_COMPONENTS],\n exports: [CommonModule, FramePageModule, ...CDK_COMPONENTS],\n providers: [ModalDialogService],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class NativeScriptCommonModule {}\n","import { ViewportScroller, XhrFactory, ɵNullViewportScroller as NullViewportScroller } from '@angular/common';\nimport { ApplicationModule, ErrorHandler, Inject, NgModule, NO_ERRORS_SCHEMA, Optional, Provider, RendererFactory2, SkipSelf, StaticProvider, ɵINJECTOR_SCOPE as INJECTOR_SCOPE } from '@angular/core';\nimport { Color, Device, View } from '@nativescript/core';\nimport { AppHostView } from './app-host-view';\nimport { NativescriptXhrFactory } from './nativescript-xhr-factory';\nimport { NativeScriptRendererFactory } from './nativescript-renderer';\nimport { PlatformNamespaceFilter, NAMESPACE_FILTERS } from './property-filter';\nimport { APP_ROOT_VIEW, DEVICE, ENABLE_REUSABE_VIEWS, NATIVESCRIPT_ROOT_MODULE_ID } from './tokens';\nimport { ViewUtil } from './view-util';\nimport { DetachedLoader } from './cdk/detached-loader';\nimport { NativeScriptCommonModule } from './nativescript-common.module';\n\nexport function generateFallbackRootView(parentRootView?: View) {\n if (parentRootView) {\n return parentRootView;\n }\n return new AppHostView(new Color('white'));\n}\n\nexport function errorHandler() {\n return new ErrorHandler();\n}\nexport function generateRandomId() {\n return `${Date.now()}` + '_' + Math.random().toString(36).substr(2, 9);\n}\n\nexport const NATIVESCRIPT_MODULE_STATIC_PROVIDERS: StaticProvider[] = [\n { provide: APP_ROOT_VIEW, useFactory: generateFallbackRootView, deps: [[new Optional(), new SkipSelf(), APP_ROOT_VIEW]] },\n { provide: INJECTOR_SCOPE, useValue: 'root' },\n { provide: ErrorHandler, useFactory: errorHandler, deps: [] },\n { provide: ViewUtil, useClass: ViewUtil, deps: [NAMESPACE_FILTERS, [new Optional(), ENABLE_REUSABE_VIEWS]] },\n {\n provide: NativeScriptRendererFactory,\n useClass: NativeScriptRendererFactory,\n deps: [APP_ROOT_VIEW, NAMESPACE_FILTERS, NATIVESCRIPT_ROOT_MODULE_ID, [new Optional(), ENABLE_REUSABE_VIEWS]],\n },\n { provide: NATIVESCRIPT_ROOT_MODULE_ID, useFactory: generateRandomId },\n { provide: RendererFactory2, useExisting: NativeScriptRendererFactory },\n { provide: NAMESPACE_FILTERS, useClass: PlatformNamespaceFilter, deps: [DEVICE], multi: true },\n { provide: DEVICE, useValue: Device },\n { provide: XhrFactory, useClass: NativescriptXhrFactory, deps: [] },\n];\nexport const NATIVESCRIPT_MODULE_PROVIDERS: Provider[] = [{ provide: ViewportScroller, useClass: NullViewportScroller }];\n\n@NgModule({\n imports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule],\n providers: [...NATIVESCRIPT_MODULE_STATIC_PROVIDERS, ...NATIVESCRIPT_MODULE_PROVIDERS],\n exports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class NativeScriptModule {\n constructor(@Optional() @SkipSelf() @Inject(NativeScriptModule) parentModule: NativeScriptModule | null) {\n if (parentModule) {\n 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.`);\n }\n }\n}\n","import {\n Type,\n Injector,\n CompilerOptions,\n PlatformRef,\n NgModuleFactory,\n NgModuleRef,\n EventEmitter,\n Sanitizer,\n InjectionToken,\n StaticProvider,\n createPlatformFactory,\n platformCore,\n PLATFORM_ID,\n ɵinternalCreateApplication,\n ApplicationConfig,\n} from '@angular/core';\nimport { DOCUMENT, LocationChangeListener, LocationStrategy, PlatformLocation } from '@angular/common';\nimport { NativeScriptPlatformRefProxy } from './platform-ref';\nimport { AppHostView } from './app-host-view';\nimport { Color, GridLayout } from '@nativescript/core';\nimport { defaultPageFactory, PAGE_FACTORY } from './tokens';\nimport { AppLaunchView } from './application';\nimport { NATIVESCRIPT_MODULE_PROVIDERS, NATIVESCRIPT_MODULE_STATIC_PROVIDERS } from './nativescript';\n\nexport const defaultPageFactoryProvider = { provide: PAGE_FACTORY, useValue: defaultPageFactory };\nexport class NativeScriptSanitizer extends Sanitizer {\n sanitize(_context: any, value: string): string {\n return value;\n }\n}\n// TODO: when angular finally exports their scheduler token for ivy CD, provide our own with queueMacroTask\n// export function schedulerFactory() {\n// return (fn: any) => {\n// console.log('SCHEDULER');\n// setTimeout(fn, 0);\n// };\n// }\n\nexport class NativeScriptDocument {\n // Required by the AnimationDriver\n public body: any = {\n isOverride: true,\n };\n\n createElement(tag: string) {\n throw new Error('NativeScriptDocument is not DOM Document. There is no createElement() method.');\n }\n}\n\nexport class DummyLocationStrategy extends LocationStrategy {\n path(includeHash?: boolean): string {\n throw new Error('Method not implemented.');\n }\n prepareExternalUrl(internal: string): string {\n throw new Error('Method not implemented.');\n }\n getState(): unknown {\n throw new Error('Method not implemented.');\n }\n pushState(state: any, title: string, url: string, queryParams: string): void {\n throw new Error('Method not implemented.');\n }\n replaceState(state: any, title: string, url: string, queryParams: string): void {\n throw new Error('Method not implemented.');\n }\n forward(): void {\n throw new Error('Method not implemented.');\n }\n back(): void {\n throw new Error('Method not implemented.');\n }\n onPopState(fn: LocationChangeListener): void {\n throw new Error('Method not implemented.');\n }\n getBaseHref(): string {\n throw new Error('Method not implemented.');\n }\n}\nexport class DummyPlatformLocation extends PlatformLocation {\n getBaseHrefFromDOM(): string {\n throw new Error('Method not implemented.');\n }\n getState(): unknown {\n throw new Error('Method not implemented.');\n }\n onPopState(fn: LocationChangeListener): VoidFunction {\n throw new Error('Method not implemented.');\n }\n onHashChange(fn: LocationChangeListener): VoidFunction {\n throw new Error('Method not implemented.');\n }\n get href(): string {\n throw new Error('Method not implemented.');\n }\n get protocol(): string {\n throw new Error('Method not implemented.');\n }\n get hostname(): string {\n throw new Error('Method not implemented.');\n }\n get port(): string {\n throw new Error('Method not implemented.');\n }\n get pathname(): string {\n throw new Error('Method not implemented.');\n }\n get search(): string {\n throw new Error('Method not implemented.');\n }\n get hash(): string {\n throw new Error('Method not implemented.');\n }\n replaceState(state: any, title: string, url: string): void {\n throw new Error('Method not implemented.');\n }\n pushState(state: any, title: string, url: string): void {\n throw new Error('Method not implemented.');\n }\n forward(): void {\n throw new Error('Method not implemented.');\n }\n back(): void {\n throw new Error('Method not implemented.');\n }\n}\n\nexport const COMMON_PROVIDERS: StaticProvider[] = [\n defaultPageFactoryProvider,\n { provide: Sanitizer, useClass: NativeScriptSanitizer, deps: [] },\n { provide: DOCUMENT, useClass: NativeScriptDocument, deps: [] },\n { provide: PLATFORM_ID, useValue: 'browser' },\n {\n provide: LocationStrategy,\n useClass: DummyLocationStrategy,\n deps: [],\n },\n { provide: PlatformLocation, useClass: DummyPlatformLocation, deps: [] },\n];\n\nexport const platformNativeScript = createPlatformFactory(platformCore, 'nativescriptDynamic', COMMON_PROVIDERS);\nfunction createProvidersConfig(options?: ApplicationConfig) {\n return {\n appProviders: [\n ...NATIVESCRIPT_MODULE_STATIC_PROVIDERS,\n ...NATIVESCRIPT_MODULE_PROVIDERS,\n ...(options?.providers ?? []),\n ],\n platformProviders: COMMON_PROVIDERS,\n };\n}\n\nexport function bootstrapApplication(rootComponent: Type<any>, options?: ApplicationConfig) {\n return ɵinternalCreateApplication({\n rootComponent: rootComponent,\n ...createProvidersConfig(options),\n });\n}\n\nexport function createApplication(options?: ApplicationConfig) {\n return ɵinternalCreateApplication(createProvidersConfig(options));\n}\n\nexport interface HmrOptions {\n /**\n * A factory function that returns either Module type or NgModuleFactory type.\n * This needs to be a factory function as the types will change when modules are replaced.\n */\n moduleTypeFactory?: () => Type<any> | NgModuleFactory<any>;\n\n /**\n * A livesync callback that will be called instead of the original livesync.\n * It gives the HMR a hook to apply the module replacement.\n * @param bootstrapPlatform - A bootstrap callback to be called after HMR is done. It will bootstrap a new angular app within the exisiting platform, using the moduleTypeFactory to get the Module or NgModuleFactory to be used.\n */\n livesyncCallback: (bootstrapPlatform: () => void) => void;\n}\n\nexport interface AppOptions {\n cssFile?: string;\n startPageActionBarHidden?: boolean;\n hmrOptions?: HmrOptions;\n /**\n * Background color of the root view\n */\n backgroundColor?: string;\n /**\n * Use animated launch view (async by default)\n */\n launchView?: AppLaunchView;\n /**\n * When using Async APP_INITIALIZER, set this to `true`.\n * (Not needed when using launchView)\n */\n async?: boolean;\n}\n\n/**\n * @deprecated use runNativeScriptAngularApp instead\n */\nexport const platformNativeScriptDynamic = function (options?: AppOptions, extraProviders?: StaticProvider[]) {\n console.log('platformNativeScriptDynamic is deprecated, use runNativeScriptAngularApp instead');\n options = options || {};\n extraProviders = extraProviders || [];\n\n const ngRootView = new AppHostView(new Color(options.backgroundColor || 'white'));\n let launchView = options.launchView;\n if (!launchView && options.async) {\n launchView = new GridLayout();\n launchView.backgroundColor = options.backgroundColor || 'white';\n }\n return new NativeScriptPlatformRefProxy(platformNativeScript([...extraProviders]), launchView);\n};\n","import { NgModule } from '@angular/core';\nimport { Application, ContentView, RootLayout, View } from '@nativescript/core';\nimport { APP_ROOT_VIEW, DISABLE_ROOT_VIEW_HANDLING } from './tokens';\n\nexport class RootViewProxy extends ContentView {\n constructor(private parentRootLayout: RootLayout) {\n super();\n }\n\n _addView(view: View, atIndex?: number) {\n super._addView(view, atIndex);\n if (this.parentRootLayout.getChildIndex(this) < 0) {\n this.parentRootLayout.insertChild(this, 0);\n }\n }\n\n _removeView(view: View) {\n super._removeView(view);\n this.parentRootLayout.removeChild(this);\n }\n}\n\n/**\n * This generates a RootLayout and returns a RootViewProxy.\n * Setting RootViewProxy.content will add the view to the bottom of the RootLayout\n * Setting RootViewProxy.content = null will remove the view from the RootLayout\n * @returns RootViewProxy that will insert content into the start of the RootLayout\n */\nexport function generateRootLayoutAndProxy() {\n let rootView = Application.getRootView();\n if (!rootView || !(rootView instanceof RootLayout)) {\n rootView = new RootLayout();\n Application.resetRootView({ create: () => rootView });\n }\n const viewProxy = new RootViewProxy(rootView as RootLayout);\n // (rootView as RootLayout).insertChild(viewProxy, 0);\n return viewProxy;\n}\n\n@NgModule({\n providers: [\n { provide: DISABLE_ROOT_VIEW_HANDLING, useValue: true },\n { provide: APP_ROOT_VIEW, useFactory: generateRootLayoutAndProxy },\n ],\n})\nexport class RootCompositeModule {}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { ViewContainerRef, ComponentFactoryResolver } from '@angular/core';\nimport { ShowModalOptions, View } from '@nativescript/core';\n\nexport type NativeShowModalOptions = Partial<Omit<ShowModalOptions, 'cancelable' | 'closeCallback'>>;\n/**\n * Configuration for opening a modal dialog with the MatDialog service.\n */\nexport class NativeDialogConfig<D = any> {\n /**\n * Where the attached component should live in Angular's *logical* component tree.\n * This affects what is available for injection and the change detection order for the\n * component instantiated inside of the dialog. This does not affect where the dialog\n * content will be rendered.\n */\n viewContainerRef?: ViewContainerRef;\n\n /** Where to render the actual dialog in. By default it renders using the native view of the ViewContainerRef */\n renderIn?: 'root' | 'viewContainerRef' | View = 'viewContainerRef';\n\n /** ID for the dialog. If omitted, a unique one will be generated. */\n id?: string;\n\n /** Whether the dialog has a backdrop. */\n hasBackdrop?: boolean = true;\n\n /** Whether the user can use escape or clicking on the backdrop to close the modal. */\n disableClose?: boolean = false;\n\n /** Data being injected into the child component. */\n data?: D | null = null;\n\n /**\n * Whether the dialog should close when the user goes backwards/forwards in history.\n * Note that this usually doesn't include clicking on links (unless the user is using\n * the `HashLocationStrategy`).\n */\n closeOnNavigation?: boolean = true;\n\n /** Alternate `ComponentFactoryResolver` to use when resolving the associated component. */\n componentFactoryResolver?: ComponentFactoryResolver;\n\n nativeOptions?: NativeShowModalOptions = {};\n\n // TODO(jelbourn): add configuration for lifecycle hooks, ARIA labelling.\n}\n","import { Observable, Subject } from 'rxjs';\nimport { filter, take } from 'rxjs/operators';\nimport { NativeModalRef } from './native-modal-ref';\n\n// Counter for unique dialog ids.\nlet uniqueId = 0;\n\n/** Possible states of the lifecycle of a dialog. */\nexport const enum NativeDialogState {\n OPEN,\n CLOSING,\n CLOSED,\n}\n\nexport class NativeDialogRef<T, R = any> {\n /** The instance of component opened into the dialog. */\n componentInstance: T;\n\n /** Whether the user is allowed to close the dialog. */\n disableClose: boolean | undefined; //= this._containerInstance._config.disableClose;\n\n /** Subject for notifying the user that the dialog has finished opening. */\n private readonly _afterOpened = new Subject<void>();\n\n /** Subject for notifying the user that the dialog has finished closing. */\n private readonly _afterClosed = new Subject<R | undefined>();\n\n /** Subject for notifying the user that the dialog has started closing. */\n private readonly _beforeClosed = new Subject<R | undefined>();\n\n /** Result to be passed to afterClosed. */\n private _result: R | undefined;\n\n /** Handle to the timeout that's running as a fallback in case the exit animation doesn't fire. */\n private _closeFallbackTimeout: any;\n\n /** Current state of the dialog. */\n private _state = NativeDialogState.OPEN;\n\n constructor(private _nativeModalRef: NativeModalRef, readonly id: string = `native-dialog-${uniqueId++}`) {\n // Pass the id along to the container.\n _nativeModalRef._id = id;\n\n // Emit when opening animation completes\n _nativeModalRef.stateChanged\n .pipe(\n filter((event) => event.state === 'opened'),\n take(1)\n )\n .subscribe(() => {\n this._afterOpened.next();\n this._afterOpened.complete();\n });\n\n // Dispose overlay when closing animation is complete\n _nativeModalRef.stateChanged\n .pipe(\n filter((event) => event.state === 'closed'),\n take(1)\n )\n .subscribe(() => {\n clearTimeout(this._closeFallbackTimeout);\n this._finishDialogClose();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n });\n\n _nativeModalRef.onDismiss.subscribe(() => {\n this._beforeClosed.next(this._result);\n this._beforeClosed.complete();\n\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.componentInstance = null!;\n _nativeModalRef.dispose();\n });\n }\n\n /**\n * Close the dialog.\n * @param dialogResult Optional result to return to the dialog opener.\n */\n close(dialogResult?: R): void {\n this._result = dialogResult;\n\n // Transition the backdrop in parallel to the dialog.\n this._nativeModalRef.stateChanged\n .pipe(\n filter((event) => event.state === 'closing'),\n take(1)\n )\n .subscribe(() => {\n this._beforeClosed.next(dialogResult);\n this._beforeClosed.complete();\n this._nativeModalRef.dispose();\n // this._overlayRef.detachBackdrop();\n\n // The logic that disposes of the overlay depends on the exit animation completing, however\n // it isn't guaranteed if the parent view is destroyed while it's running. Add a fallback\n // timeout which will clean everything up if the animation hasn't fired within the specified\n // amount of time plus 100ms. We don't need to run this outside the NgZone, because for the\n // vast majority of cases the timeout will have been cleared before it has the chance to fire.\n this._closeFallbackTimeout = setTimeout(\n () => {\n this._finishDialogClose();\n this._afterClosed.next(this._result);\n this._afterClosed.complete();\n },\n //event.totalTime + 100);\n 100\n );\n });\n\n this._state = NativeDialogState.CLOSING;\n this._nativeModalRef._startExitAnimation();\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished opening.\n */\n afterOpened(): Observable<void> {\n return this._afterOpened;\n }\n\n /**\n * Gets an observable that is notified when the dialog is finished closing.\n */\n afterClosed(): Observable<R | undefined> {\n return this._afterClosed;\n }\n\n /**\n * Gets an observable that is notified when the dialog has started closing.\n */\n beforeClosed(): Observable<R | undefined> {\n return this._beforeClosed;\n }\n\n /**\n * Gets an observable that emits when the overlay's backdrop has been clicked.\n */\n backdropClick(): Observable<MouseEvent> {\n throw new Error('Method not implemented');\n }\n\n /** Add a CSS class or an array of classes to the overlay pane. */\n addPanelClass(classes: string | string[]): this {\n // this._overlayRef.addPanelClass(classes);\n return this;\n }\n\n /** Remove a CSS class or an array of classes from the overlay pane. */\n removePanelClass(classes: string | string[]): this {\n // this._overlayRef.removePanelClass(classes);\n return this;\n }\n\n /** Gets the current state of the dialog's lifecycle. */\n getState(): NativeDialogState {\n return this._state;\n }\n\n /**\n * Finishes the dialog close by updating the state of the dialog\n * and disposing the overlay.\n */\n private _finishDialogClose() {\n this._state = NativeDialogState.CLOSED;\n this._nativeModalRef.dispose();\n }\n}\n","import {\n ApplicationRef,\n ComponentFactoryResolver,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n Injector,\n Optional,\n ViewContainerRef,\n} from '@angular/core';\nimport { Application, ContentView, Frame, View } from '@nativescript/core';\nimport { fromEvent, Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { AppHostAsyncView, AppHostView } from '../../app-host-view';\nimport { NSLocationStrategy } from '../../legacy/router/ns-location-strategy';\nimport { once } from '../../utils/general';\nimport { NgViewRef } from '../../view-refs';\nimport { DetachedLoader } from '../detached-loader';\nimport { ComponentPortal, TemplatePortal } from '../portal/common';\nimport { NativeScriptDomPortalOutlet } from '../portal/nsdom-portal-outlet';\nimport { NativeDialogConfig } from './dialog-config';\n\nexport class NativeModalRef {\n _id: string;\n stateChanged = new Subject<{ state: 'opened' | 'closed' | 'closing' }>();\n onDismiss = new Subject<void>();\n\n parentView: View;\n portalOutlet: NativeScriptDomPortalOutlet;\n detachedLoaderRef: ComponentRef<DetachedLoader>;\n modalViewRef: NgViewRef<any>;\n\n private _closeCallback: () => void;\n private _isDismissed = false;\n\n constructor(\n private _config: NativeDialogConfig,\n private _injector: Injector,\n @Optional() private location?: NSLocationStrategy,\n ) {\n const nativeElement =\n this._config.renderIn === 'root'\n ? Application.getRootView()\n : this._config.renderIn === 'viewContainerRef'\n ? this._config.viewContainerRef?.element.nativeElement\n : this._config.renderIn;\n let parentView = nativeElement || Application.getRootView();\n\n if ((parentView instanceof AppHostView || parentView instanceof AppHostAsyncView) && parentView.ngAppRoot) {\n parentView = parentView.ngAppRoot;\n }\n\n // _ngDialogRoot is the first child of the previously detached proxy.\n // It should have 'viewController' (iOS) or '_dialogFragment' (Android) available for\n // presenting future modal views.\n while (parentView._modal || parentView._ngDialogRoot) {\n parentView = parentView._modal || parentView._ngDialogRoot;\n }\n this.parentView = parentView;\n\n this._closeCallback = once(async () => {\n this.stateChanged.next({ state: 'closing' });\n if (!this._isDismissed) {\n this.modalViewRef.firstNativeLikeView?.closeModal();\n }\n await this.location?._closeModalNavigation();\n // this.detachedLoaderRef?.destroy();\n if (this.modalViewRef?.firstNativeLikeView.isLoaded) {\n fromEvent(this.modalViewRef.firstNativeLikeView, 'unloaded')\n .pipe(take(1))\n .subscribe(() => this.stateChanged.next({ state: 'closed' }));\n } else {\n this.stateChanged.next({ state: 'closed' });\n }\n });\n }\n\n _generateDetachedContainer(vcRef?: ViewContainerRef) {\n if (vcRef) {\n this.detachedLoaderRef = vcRef.createComponent(DetachedLoader);\n } else {\n this.detachedLoaderRef = createComponent(DetachedLoader, {\n environmentInjector: this._injector.get(ApplicationRef).injector,\n elementInjector: this._config.viewContainerRef?.injector || this._injector,\n });\n this._injector.get(ApplicationRef).attachView(this.detachedLoaderRef.hostView);\n }\n this.detachedLoaderRef.changeDetectorRef.detectChanges();\n }\n\n attachTemplatePortal<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T> {\n this.startModalNavigation();\n const vcRef = portal.viewContainerRef || this._config.viewContainerRef;\n this._generateDetachedContainer(vcRef);\n portal.viewContainerRef = this.detachedLoaderRef.instance.vc;\n const targetView = new ContentView();\n this.portalOutlet = new NativeScriptDomPortalOutlet(\n targetView,\n this._config.componentFactoryResolver || this._injector.get(ComponentFactoryResolver),\n this._injector.get(ApplicationRef),\n this._injector,\n );\n const templateRef = this.portalOutlet.attach(portal);\n this.modalViewRef = new NgViewRef(templateRef);\n this.modalViewRef.firstNativeLikeView['__ng_modal_id__'] = this._id;\n // if we don't detach the view from its parent, ios gets mad\n this.modalViewRef.detachNativeLikeView();\n\n const userOptions = this._config.nativeOptions || {};\n this.parentView.showModal(this.modalViewRef.firstNativeLikeView, {\n context: null,\n ...userOptions,\n closeCallback: async () => {\n await this.location?._closeModalNavigation();\n this.onDismiss.next();\n this.onDismiss.complete();\n },\n cancelable: !this._config.disableClose,\n });\n // if (this.modalView !== templateRef.rootNodes[0]) {\n // componentRef.location.nativeElement._ngDialogRoot = this.modalView;\n // }\n return templateRef;\n }\n\n attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T> {\n this.startModalNavigation();\n\n const targetView = new ContentView();\n this.portalOutlet = new NativeScriptDomPortalOutlet(\n targetView,\n this._config.componentFactoryResolver || this._injector.get(ComponentFactoryResolver),\n this._injector.get(ApplicationRef),\n this._injector,\n );\n const componentRef = this.portalOutlet.attach(portal);\n componentRef.changeDetectorRef.detectChanges();\n this.modalViewRef = new NgViewRef(componentRef);\n if (this.modalViewRef.firstNativeLikeView !== this.modalViewRef.view) {\n (<any>this.modalViewRef.view)._ngDialogRoot = this.modalViewRef.firstNativeLikeView;\n }\n this.modalViewRef.firstNativeLikeView['__ng_modal_id__'] = this._id;\n // if we don't detach the view from its parent, ios gets mad\n this.modalViewRef.detachNativeLikeView();\n\n const userOptions = this._config.nativeOptions || {};\n this.parentView.showModal(this.modalViewRef.firstNativeLikeView, {\n context: null,\n ...userOptions,\n closeCallback: async () => {\n this._isDismissed = true;\n this._closeCallback(); // close callback can only be called once, so we call it here to setup the exit events\n this.onDismiss.next();\n this.onDismiss.complete();\n },\n cancelable: !this._config.disableClose,\n });\n return componentRef;\n }\n\n _startExitAnimation() {\n this._closeCallback();\n }\n\n dispose() {\n this.portalOutlet.dispose();\n }\n private startModalNavigation() {\n const frame = this.parentView instanceof Frame ? this.parentView : this.parentView?.page?.frame || Frame.topmost();\n\n this.location?._beginModalNavigation(frame);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport {\n inject,\n Injectable,\n InjectionToken,\n Injector,\n OnDestroy,\n StaticProvider,\n TemplateRef,\n Type,\n} from '@angular/core';\nimport { defer, Observable, Subject } from 'rxjs';\nimport { startWith } from 'rxjs/operators';\nimport { NSLocationStrategy } from '../../legacy/router/ns-location-strategy';\nimport { ComponentType } from '../../utils/general';\nimport { ComponentPortal, TemplatePortal } from '../portal/common';\nimport { NativeDialogConfig } from './dialog-config';\nimport { NativeDialogRef } from './dialog-ref';\nimport { NativeModalRef } from './native-modal-ref';\n\n/** Injection token that can be used to access the data that was passed in to a dialog. */\nexport const NATIVE_DIALOG_DATA = new InjectionToken<any>('NativeDialogData');\n\n/** Injection token that can be used to specify default dialog options. */\nexport const NATIVE_DIALOG_DEFAULT_OPTIONS = new InjectionToken<NativeDialogConfig>('native-dialog-default-options');\n\n/**\n * Base class for dialog services. The base dialog service allows\n * for arbitrary dialog refs and dialog container components.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class NativeDialog implements OnDestroy {\n private _openDialogsAtThisLevel: NativeDialogRef<any>[] = [];\n private readonly _afterAllClosedAtThisLevel = new Subject<void>();\n private readonly _afterOpenedAtThisLevel = new Subject<NativeDialogRef<any>>();\n // TODO (jelbourn): tighten the typing right-hand side of this expression.\n /**\n * Stream that emits when all open dialog have finished closing.\n * Will emit on subscribe if there are no open dialogs to begin with.\n */\n readonly afterAllClosed: Observable<void> = defer(() =>\n this.openDialogs.length\n ? this._getAfterAllClosed()\n : this._getAfterAllClosed().pipe(startWith<any, any>(undefined)),\n ) as Observable<any>;\n\n /** Keeps track of the currently-open dialogs. */\n get openDialogs(): NativeDialogRef<any>[] {\n return this._parentDialog ? this._parentDialog.openDialogs : this._openDialogsAtThisLevel;\n }\n\n /** Stream that emits when a dialog has been opened. */\n get afterOpened(): Subject<NativeDialogRef<any>> {\n return this._parentDialog ? this._parentDialog.afterOpened : this._afterOpenedAtThisLevel;\n }\n\n _getAfterAllClosed(): Subject<void> {\n const parent = this._parentDialog;\n return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;\n }\n private _injector = inject(Injector);\n private _defaultOptions = inject(NATIVE_DIALOG_DEFAULT_OPTIONS, {\n optional: true,\n });\n private _parentDialog = inject(NativeDialog, { optional: true, skipSelf: true });\n private _dialogRefConstructor: Type<NativeDialogRef<any>> = NativeDialogRef;\n private _nativeModalType = NativeModalRef;\n private _dialogDataToken = NATIVE_DIALOG_DATA;\n private locationStrategy = inject(NSLocationStrategy);\n /**\n * Opens a modal dialog containing the given component.\n * @param component Type of the component to load into the dialog.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<T, D = any, R = any>(component: ComponentType<T>, config?: NativeDialogConfig<D>): NativeDialogRef<T, R>;\n\n /**\n * Opens a modal dialog containing the given template.\n * @param template TemplateRef to instantiate as the dialog content.\n * @param config Extra configuration options.\n * @returns Reference to the newly-opened dialog.\n */\n open<T, D = any, R = any>(template: TemplateRef<T>, config?: NativeDialogConfig<D>): NativeDialogRef<T, R>;\n\n open<T, D = any, R = any>(\n template: ComponentType<T> | TemplateRef<T>,\n config?: NativeDialogConfig<D>,\n ): NativeDialogRef<T, R>;\n\n open<T, D = any, R = any>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config?: NativeDialogConfig<D>,\n ): NativeDialogRef<T, R> {\n config = _applyConfigDefaults(config, this._defaultOptions || new NativeDialogConfig());\n\n if (config.id && this.getDialogById(config.id) && (typeof ngDevMode === 'undefined' || ngDevMode)) {\n throw Error(`Dialog with id \"${config.id}\" exists already. The dialog id must be unique.`);\n }\n const dialogRef = this._attachDialogContent<T, R>(componentOrTemplateRef, config);\n\n this.openDialogs.push(dialogRef);\n dialogRef.afterClosed().subscribe(() => this._removeOpenDialog(dialogRef));\n this.afterOpened.next(dialogRef);\n\n // Notify the dialog container that the content has been attached.\n // dialogContainer._initializeWithAttachedContent();\n\n return dialogRef;\n }\n\n /**\n * Closes all of the currently-open dialogs.\n */\n closeAll(): void {\n this._closeDialogs(this.openDialogs);\n }\n\n /**\n * Finds an open dialog by its id.\n * @param id ID to use when looking up the dialog.\n */\n getDialogById(id: string): NativeDialogRef<any> | undefined {\n return this.openDialogs.find((dialog) => dialog.id === id);\n }\n\n ngOnDestroy() {\n // Only close the dialogs at this level on destroy\n // since the parent service may still be active.\n this._closeDialogs(this._openDialogsAtThisLevel);\n this._afterAllClosedAtThisLevel.complete();\n this._afterOpenedAtThisLevel.complete();\n }\n\n /**\n * Attaches the user-provided component to the already-created dialog container.\n * @param componentOrTemplateRef The type of component being loaded into the dialog,\n * or a TemplateRef to instantiate as the content.\n * @param dialogContainer Reference to the wrapping dialog container.\n * @param overlayRef Reference to the overlay in which the dialog resides.\n * @param config The dialog configuration.\n * @returns A promise resolving to the MatDialogRef that should be returned to the user.\n */\n private _attachDialogContent<T, R>(\n componentOrTemplateRef: ComponentType<T> | TemplateRef<T>,\n config: NativeDialogConfig,\n ): NativeDialogRef<T, R> {\n // Create a reference to the dialog we're creating in order to give the user a handle\n // to modify and close it.\n const nativeModalRef = new this._nativeModalType(config, this._injector, this.locationStrategy);\n const dialogRef = new this._dialogRefConstructor(nativeModalRef, config.id);\n\n if (componentOrTemplateRef instanceof TemplateRef) {\n // const detachedFactory = options.resolver.resolveComponentFactory(DetachedLoader);\n // if(options.attachToContainerRef) {\n // detachedLoaderRef = options.attachToContainerRef.createComponent(detachedFactory, 0, childInjector, null);\n // } else {\n // detachedLoaderRef = detachedFactory.create(childInjector); // this DetachedLoader is **completely** detached\n // this.appRef.attachView(detachedLoaderRef.hostView); // we attach it to the applicationRef, so it becomes a \"root\" view in angular's hierarchy\n // }\n // detachedLoaderRef.changeDetectorRef.detectChanges(); // force a change detection\n // detachedLoaderRef.instance.createTemplatePortal(options.templateRef);\n nativeModalRef.attachTemplatePortal(\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n new TemplatePortal<T>(componentOrTemplateRef, null!, <any>{ $implicit: config.data, dialogRef }),\n );\n } else {\n const injector = this._createInjector<T>(config, dialogRef);\n const contentRef = nativeModalRef.attachComponentPortal<T>(\n new ComponentPortal(componentOrTemplateRef, config.viewContainerRef, injector),\n );\n dialogRef.componentInstance = contentRef.instance;\n }\n\n return dialogRef;\n }\n\n /**\n * Creates a custom injector to be used inside the dialog. This allows a component loaded inside\n * of a dialog to close itself and, optionally, to return a value.\n * @param config Config object that is used to construct the dialog.\n * @param dialogRef Reference to the dialog.\n * @param dialogContainer Dialog container element that wraps all of the contents.\n * @returns The custom injector that can be used inside the dialog.\n */\n private _createInjector<T>(config: NativeDialogConfig, dialogRef: NativeDialogRef<T>): Injector {\n const userInjector = config && config.viewContainerRef && config.viewContainerRef.injector;\n\n // The dialog container should be provided as the dialog container and the dialog's\n // content are created out of the same `ViewContainerRef` and as such, are siblings\n // for injector purposes. To allow the hierarchy that is expected, the dialog\n // container is explicitly provided in the injector.\n const providers: StaticProvider[] = [\n { provide: this._dialogDataToken, useValue: config.data },\n { provide: this._dialogRefConstructor, useValue: dialogRef },\n ];\n\n return Injector.create({ parent: userInjector || this._injector, providers });\n }\n\n /**\n * Removes a dialog from the array of open dialogs.\n * @param dialogRef Dialog to be removed.\n */\n private _removeOpenDialog(dialogRef: NativeDialogRef<any>) {\n const index = this.openDialogs.indexOf(dialogRef);\n\n if (index > -1) {\n this.openDialogs.splice(index, 1);\n\n // If all the dialogs were closed, remove/restore the `aria-hidden`\n // to a the siblings and emit to the `afterAllClosed` stream.\n if (!this.openDialogs.length) {\n this._getAfterAllClosed().next();\n }\n }\n }\n\n /** Closes all of the dialogs in an array. */\n private _closeDialogs(dialogs: NativeDialogRef<any>[]) {\n let i = dialogs.length;\n\n while (i--) {\n // The `_openDialogs` property isn't updated after close until the rxjs subscription\n // runs on the next microtask, in addition to modifying the array as we're going\n // through it. We loop through all of them and call close without assuming that\n // they'll be removed from the list instantaneously.\n dialogs[i].close();\n }\n }\n}\n\n/**\n * Applies default options to the dialog config.\n * @param config Config to be modified.\n * @param defaultOptions Default options provided.\n * @returns The new configuration object.\n */\nfunction _applyConfigDefaults(config?: NativeDialogConfig, defaultOptions?: NativeDialogConfig): NativeDialogConfig {\n return { ...defaultOptions, ...config };\n}\n\nexport {\n /**\n * @deprecated Use `NativeDialog` instead.\n */\n NativeDialog as NativeDialogService,\n};\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { Directive, ElementRef, HostListener, inject, Input, OnChanges, OnInit, Optional, SimpleChanges } from '@angular/core';\nimport { View, ViewBase } from '@nativescript/core';\nimport { NativeDialogRef } from './dialog-ref';\nimport { NativeDialog } from './dialog-services';\n\n/**\n * Button that will close the current dialog.\n */\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: '[native-dialog-close], [nativeDialogClose]',\n exportAs: 'nativeDialogClose',\n standalone: true,\n})\nexport class NativeDialogCloseDirective implements OnInit, OnChanges {\n /** Dialog close input. */\n @Input('native-dialog-close') dialogResult: any;\n\n @Input('nativeDialogClose') _matDialogClose: any;\n dialogRef = inject(NativeDialogRef<any>, { optional: true });\n _elementRef = inject(ElementRef<View>);\n _dialog = inject(NativeDialog);\n\n ngOnInit() {\n if (!this.dialogRef) {\n // When this directive is included in a dialog via TemplateRef (rather than being\n // in a Component), the DialogRef isn't available via injection because embedded\n // views cannot be given a custom injector. Instead, we look up the DialogRef by\n // ID. This must occur in `onInit`, as the ID binding for the dialog container won't\n // be resolved at constructor time.\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n this.dialogRef = getClosestDialog(this._elementRef, this._dialog.openDialogs)!;\n }\n }\n\n ngOnChanges(changes: SimpleChanges) {\n const proxiedChange = changes['_matDialogClose'] || changes['_matDialogCloseResult'];\n\n if (proxiedChange) {\n this.dialogResult = proxiedChange.currentValue;\n }\n }\n\n @HostListener('tap')\n _onButtonClick() {\n // Determinate the focus origin using the click event, because using the FocusMonitor will\n // result in incorrect origins. Most of the time, close buttons will be auto focused in the\n // dialog, and therefore clicking the button won't result in a focus change. This means that\n // the FocusMonitor won't detect any origin change, and will always output `program`.\n this.dialogRef.close(this.dialogResult);\n }\n}\n\n/**\n * Finds the closest MatDialogRef to an element by looking at the DOM.\n * @param element Element relative to which to look for a dialog.\n * @param openDialogs References to the currently-open dialogs.\n */\nfunction getClosestDialog(element: ElementRef<View>, openDialogs: NativeDialogRef<any>[]) {\n let view: ViewBase | null = element.nativeElement.parent;\n\n while (view && !Object.hasOwnProperty.call(view, '__ng_modal_id__')) {\n view = view.parent;\n }\n\n return view ? openDialogs.find((dialog) => dialog.id === view['__ng_modal_id__']) : null;\n}\n","import { NgModule } from '@angular/core';\nimport { NativeDialogCloseDirective } from './dialog-content-directives';\nimport { NativeDialog } from './dialog-services';\n\n@NgModule({\n imports: [NativeDialogCloseDirective],\n exports: [NativeDialogCloseDirective],\n providers: [NativeDialog],\n})\nexport class NativeDialogModule {}\n","import { Injectable } from '@angular/core';\nimport { knownFolders, Folder, File } from '@nativescript/core';\n\n// Allows greater flexibility with `file-system` and Angular\n// Also provides a way for `file-system` to be mocked for testing\n\n@Injectable()\nexport class NSFileSystem {\n public currentApp(): Folder {\n return knownFolders.currentApp();\n }\n\n public fileFromPath(path: string): File {\n return File.fromPath(path);\n }\n\n public fileExists(path: string): boolean {\n return File.exists(path);\n }\n}\n","import { ApplicationRef, ComponentFactoryResolver, ComponentRef, EmbeddedViewRef, Injector, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { ContentView } from '@nativescript/core';\nimport { DetachedLoader } from './cdk/detached-loader';\nimport { ComponentPortal, NativeScriptDomPortalOutlet, TemplatePortal } from './cdk/portal';\nimport { NgViewRef } from './view-refs';\n\n/**\n * creates a DetachedLoader either linked to the ViewContainerRef or the ApplicationRef if ViewContainerRef is not defined\n * @param resolver component factory resolver\n * @param injector default injector, unused if viewContainerRef is set\n * @param viewContainerRef where the view should live in the angular tree\n * @returns reference to the DetachedLoader\n */\nexport function generateDetachedLoader(resolver: ComponentFactoryResolver, injector: Injector, viewContainerRef?: ViewContainerRef) {\n injector = viewContainerRef?.injector || injector;\n const detachedFactory = resolver.resolveComponentFactory(DetachedLoader);\n const detachedLoaderRef = viewContainerRef?.createComponent(detachedFactory) || detachedFactory.create(injector);\n if (!viewContainerRef) {\n injector.get(ApplicationRef).attachView(detachedLoaderRef.hostView);\n }\n detachedLoaderRef.changeDetectorRef.detectChanges();\n return detachedLoaderRef;\n}\n\n/**\n * Generates a NgViewRef from a component or template. @see NgViewRef\n * Pass keepNativeViewAttached as `true` if you don't want the first native view to be detached from its parent.\n * For opening modals and others, the firstNativeLikeView should be detached.\n * @param typeOrTemplate ComponentType or TemplateRef that should be instanced\n * @param options options for creating the view\n * @returns NgViewRef\n */\nexport function generateNativeScriptView<T>(\n typeOrTemplate: Type<T> | TemplateRef<T>,\n options: {\n resolver?: ComponentFactoryResolver;\n viewContainerRef?: ViewContainerRef;\n injector: Injector;\n keepNativeViewAttached?: boolean;\n /**\n * reuse a detachedLoaderRef. This will override viewContainerRef\n */\n detachedLoaderRef?: ComponentRef<DetachedLoader>;\n }\n) {\n let detachedLoaderRef: ComponentRef<DetachedLoader> = options.detachedLoaderRef;\n const reusingDetachedLoader = !!detachedLoaderRef;\n if (reusingDetachedLoader) {\n options.viewContainerRef = detachedLoaderRef.instance.vc;\n }\n const injector = options.viewContainerRef?.injector || options.injector;\n const resolver = options.resolver || injector.get(ComponentFactoryResolver);\n if (!detachedLoaderRef && (options.viewContainerRef || typeOrTemplate instanceof TemplateRef)) {\n detachedLoaderRef = generateDetachedLoader(resolver, injector, options.viewContainerRef);\n }\n let portal: ComponentPortal<T> | TemplatePortal<T>;\n if (typeOrTemplate instanceof TemplateRef) {\n portal = new TemplatePortal(typeOrTemplate, detachedLoaderRef.instance.vc);\n } else {\n portal = new ComponentPortal(typeOrTemplate, detachedLoaderRef?.instance.vc);\n }\n const parentView = new ContentView();\n const portalOutlet = new NativeScriptDomPortalOutlet(parentView, resolver, injector.get(ApplicationRef), injector);\n const componentOrTemplateRef: ComponentRef<T> | EmbeddedViewRef<T> = portalOutlet.attach(portal);\n componentOrTemplateRef.onDestroy(() => {\n portalOutlet.dispose();\n });\n if (detachedLoaderRef && !reusingDetachedLoader) {\n componentOrTemplateRef.onDestroy(() => {\n detachedLoaderRef.destroy();\n });\n }\n const viewRef = new NgViewRef(componentOrTemplateRef);\n (viewRef as any).detachedLoaderRef = detachedLoaderRef;\n if (!options.keepNativeViewAttached) {\n viewRef.detachNativeLikeView();\n }\n return viewRef;\n}\n","import { ControlValueAccessor } from '@angular/forms';\nimport { View, unsetValue } from '@nativescript/core';\n\nimport { isBlank } from '../../utils/lang-facade';\n\nexport class BaseValueAccessor<TView extends View> implements ControlValueAccessor {\n private pendingChangeNotification: any = 0;\n onChange: (change: any) => void = () => {\n //\n };\n onTouched = () => {\n //\n };\n\n constructor(public view: TView) {}\n\n registerOnChange(fn: (_: any) => void): void {\n this.onChange = (arg) => {\n if (this.pendingChangeNotification) {\n clearTimeout(this.pendingChangeNotification);\n }\n this.pendingChangeNotification = setTimeout(() => {\n this.pendingChangeNotification = 0;\n fn(arg);\n }, 20);\n };\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.view.isEnabled = !isDisabled;\n }\n\n writeValue(_: any) {\n //\n }\n\n protected normalizeValue(value: any): any {\n return isBlank(value) ? unsetValue : value;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { View } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst TEXT_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TextValueAccessor),\n multi: true,\n};\n\nexport type TextView = { text: string } & View;\n\n/**\n * The accessor for writing a text and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <TextField [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector:\n 'TextField[ngModel],TextField[formControlName],TextField[formControl],' +\n 'textField[ngModel],textField[formControlName],textField[formControl],' +\n 'textfield[ngModel],textfield[formControlName],textfield[formControl],' +\n 'text-field[ngModel],text-field[formControlName],text-field[formControl],' +\n 'TextView[ngModel],TextView[formControlName],TextView[formControl],' +\n 'textView[ngModel],textView[formControlName],textView[formControl],' +\n 'textview[ngModel],textview[formControlName],textview[formControl],' +\n 'text-view[ngModel],text-view[formControlName],text-view[formControl],' +\n 'SearchBar[ngModel],SearchBar[formControlName],SearchBar[formControl],' +\n 'searchBar[ngModel],searchBar[formControlName],searchBar[formControl],' +\n 'searchbar[ngModel],searchbar[formControlName],searchbar[formControl],' +\n 'search-bar[ngModel], search-bar[formControlName],search-bar[formControl]',\n providers: [TEXT_VALUE_ACCESSOR],\n host: {\n '(blur)': 'onTouched()',\n '(textChange)': 'onChange($event.value)',\n },\n})\nexport class TextValueAccessor extends BaseValueAccessor<TextView> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value ? `${value}` : value);\n this.view.text = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Switch } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst CHECKED_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CheckedValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a checked property and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <Switch [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector: 'Switch[ngModel],Switch[formControlName],Switch[formControl],' + 'switch[ngModel],switch[formControlName],switch[formControl]',\n providers: [CHECKED_VALUE_ACCESSOR],\n host: {\n '(checkedChange)': 'onChange($event.value)',\n },\n})\nexport class CheckedValueAccessor extends BaseValueAccessor<Switch> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.checked = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { DatePicker } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst DATE_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => DateValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a date and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <DatePicker [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n 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]',\n providers: [DATE_VALUE_ACCESSOR],\n host: {\n '(dateChange)': 'onChange($event.value)',\n },\n})\nexport class DateValueAccessor extends BaseValueAccessor<DatePicker> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.date = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { TimePicker } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst TIME_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => TimeValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a time and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <TimePicker [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n 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]',\n providers: [TIME_VALUE_ACCESSOR],\n host: {\n '(timeChange)': 'onChange($event.value)',\n },\n})\nexport class TimeValueAccessor extends BaseValueAccessor<TimePicker> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.time = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { Slider } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst NUMBER_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NumberValueAccessor),\n multi: true,\n};\n\n/**\n * The accessor for setting a value and listening to changes that is used by the\n * {@link NgModel}\n *\n * ### Example\n * ```\n * <Slider [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector: 'Slider[ngModel],Slider[formControlName],Slider[formControl],' + 'slider[ngModel],slider[formControlName],slider[formControl]',\n providers: [NUMBER_VALUE_ACCESSOR],\n host: {\n '(valueChange)': 'onChange($event.value)',\n },\n})\nexport class NumberValueAccessor extends BaseValueAccessor<Slider> {\n // tslint:disable-line:directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.view.value = normalized;\n }\n}\n","import { Directive, ElementRef, forwardRef, AfterViewInit } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { View } from '@nativescript/core';\nimport { BaseValueAccessor } from './base-value-accessor';\n\nconst SELECTED_INDEX_VALUE_ACCESSOR = {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => SelectedIndexValueAccessor),\n multi: true,\n};\n\nexport type SelectableView = { selectedIndex: number } & View;\n\n/**\n * The accessor for setting a selectedIndex and listening to changes that is used by the\n * {@link NgModel} directives.\n *\n * ### Example\n * ```\n * <SegmentedBar [(ngModel)]=\"model.test\">\n * ```\n */\n@Directive({\n selector:\n 'SegmentedBar[ngModel],SegmentedBar[formControlName],SegmentedBar[formControl],' +\n 'segmentedBar[ngModel],segmentedBar[formControlName],segmentedBar[formControl],' +\n 'segmentedbar[ngModel],segmentedbar[formControlName],segmentedbar[formControl],' +\n 'segmented-bar[ngModel],segmented-bar[formControlName],segmented-bar[formControl],' +\n 'ListPicker[ngModel],ListPicker[formControlName],ListPicker[formControl],' +\n 'listPicker[ngModel],listPicker[formControlName],listPicker[formControl],' +\n 'listpicker[ngModel],listpicker[formControlName],listpicker[formControl],' +\n 'list-picker[ngModel],list-picker[formControlName],list-picker[formControl],' +\n 'TabView[ngModel],TabView[formControlName],TabView[formControl],' +\n 'tabView[ngModel],tabView[formControlName],tabView[formControl],' +\n 'tabview[ngModel],tabview[formControlName],tabview[formControl],' +\n 'tab-view[ngModel],tab-view[formControlName],tab-view[formControl]',\n providers: [SELECTED_INDEX_VALUE_ACCESSOR],\n host: {\n '(selectedIndexChange)': 'onChange($event.value)',\n },\n})\nexport class SelectedIndexValueAccessor extends BaseValueAccessor<SelectableView> implements AfterViewInit {\n // tslint:disable-line:max-line-length directive-class-suffix\n constructor(elementRef: ElementRef) {\n super(elementRef.nativeElement);\n }\n\n private value: number;\n private viewInitialized: boolean;\n\n writeValue(value: any): void {\n const normalized = super.normalizeValue(value);\n this.value = normalized;\n\n if (this.viewInitialized) {\n this.view.selectedIndex = this.value;\n }\n }\n\n ngAfterViewInit() {\n this.viewInitialized = true;\n this.view.selectedIndex = this.value;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, NumberValueAccessor, SelectedIndexValueAccessor } from './value-accessors';\n\nexport * from './value-accessors';\n\n@NgModule({\n providers: [],\n imports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor],\n exports: [FormsModule, TextValueAccessor, CheckedValueAccessor, DateValueAccessor, TimeValueAccessor, SelectedIndexValueAccessor, NumberValueAccessor],\n})\nexport class NativeScriptFormsModule {}\n","import { KeyframeAnimation, KeyframeAnimationInfo, KeyframeDeclaration, KeyframeInfo, parseKeyframeDeclarations, animationTimingFunctionConverter } from '@nativescript/core';\n\nexport type Keyframe = Map<string, string | number> & { offset: number };\n\nconst DASH_CASE_REGEXP = /-+([a-z0-9])/g;\nexport function dashCaseToCamelCase(input: string): string {\n return input.replace(DASH_CASE_REGEXP, (...m: any[]) => m[1].toUpperCase());\n}\n\nexport function createKeyframeAnimation(styles: Keyframe[], duration: number, delay: number, easing: string): KeyframeAnimation {\n const info = createKeyframeAnimationInfo(styles, duration, delay, easing);\n return KeyframeAnimation.keyframeAnimationFromInfo(info);\n}\n\nconst createKeyframeAnimationInfo = (styles: Keyframe[], duration: number, delay: number, easing: string): KeyframeAnimationInfo => ({\n isForwards: true,\n duration: duration || 0.01,\n delay,\n curve: getCurve(easing),\n keyframes: styles.map(parseAnimationKeyframe),\n});\n\nconst getCurve = (value: string) => animationTimingFunctionConverter(value);\n\nconst parseAnimationKeyframe = (styles: Keyframe): KeyframeInfo => ({\n duration: getKeyframeDuration(styles),\n declarations: getDeclarations(styles),\n});\n\nconst getKeyframeDuration = (styles: Keyframe): number => styles.offset;\n\nfunction getDeclarations(styles: Keyframe): KeyframeDeclaration[] {\n const keys = Array.from(styles.keys());\n const unparsedDeclarations: KeyframeDeclaration[] = keys.map((property) => ({ property, value: styles.get(property) }));\n\n return parseKeyframeDeclarations(unparsedDeclarations);\n}\n","/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-unsafe-function-type */\nimport { AnimationPlayer } from '@angular/animations';\nimport { View, EventData, KeyframeAnimation } from '@nativescript/core';\n\nimport { Keyframe, createKeyframeAnimation } from './utils';\nimport { NgView } from '../views/view-types';\nimport { NativeScriptDebug } from '../trace';\n\nexport class NativeScriptAnimationPlayer implements AnimationPlayer {\n public parentPlayer: AnimationPlayer = null;\n\n private _startSubscriptions: Function[] = [];\n private _doneSubscriptions: Function[] = [];\n private _finished = false;\n private _started = false;\n private animation: KeyframeAnimation;\n\n constructor(\n private target: NgView,\n keyframes: Keyframe[],\n private duration: number,\n private delay: number,\n easing: string,\n ) {\n this.initKeyframeAnimation(keyframes, duration, delay, easing);\n }\n\n get totalTime(): number {\n return this.delay + this.duration;\n }\n\n init(): void {}\n\n hasStarted(): boolean {\n return this._started;\n }\n\n onStart(fn: Function): void {\n this._startSubscriptions.push(fn);\n }\n onDone(fn: Function): void {\n this._doneSubscriptions.push(fn);\n }\n onDestroy(fn: Function): void {\n this._doneSubscriptions.push(fn);\n }\n\n play(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.play`);\n }\n\n if (!this.animation) {\n return;\n }\n\n if (!this._started) {\n this._started = true;\n this._startSubscriptions.forEach((fn) => fn());\n this._startSubscriptions = [];\n }\n\n // When this issue https://github.com/NativeScript/NativeScript/issues/7984 is fixes in @nativescript/core\n // we can change this fix and apply the one that is recommended in that issue.\n if (this.target.isLoaded) {\n this.playAnimation();\n } else {\n this.target.on(View.loadedEvent, this.onTargetLoaded.bind(this));\n }\n }\n\n private onTargetLoaded(args: EventData) {\n this.target.off(View.loadedEvent, this.onTargetLoaded);\n this.playAnimation();\n }\n\n private playAnimation() {\n this.animation\n .play(this.target)\n .then(() => this.onFinish())\n .catch((_e) => {});\n }\n\n pause(): void {}\n\n finish(): void {\n this.onFinish();\n }\n\n reset(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.reset`);\n }\n\n if (this.animation && this.animation.isPlaying) {\n this.animation.cancel();\n }\n }\n\n restart(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.restart`);\n }\n\n this.reset();\n this.play();\n }\n\n destroy(): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.destroy`);\n }\n this.onFinish();\n }\n\n setPosition(_p: any): void {\n throw new Error('AnimationPlayer.setPosition method is not supported!');\n }\n\n getPosition(): number {\n return 0;\n }\n\n private initKeyframeAnimation(keyframes: Keyframe[], duration: number, delay: number, easing: string) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.initKeyframeAnimation`);\n }\n\n this.animation = createKeyframeAnimation(keyframes, duration, delay, easing);\n }\n\n private onFinish() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationPlayer.onFinish`);\n }\n\n if (this._finished) {\n return;\n }\n\n this._finished = true;\n this._started = false;\n this._doneSubscriptions.forEach((fn) => fn());\n this._doneSubscriptions = [];\n }\n}\n","import { AnimationPlayer } from '@angular/animations';\nimport { AnimationDriver } from '@angular/animations/browser';\nimport { ProxyViewContainer, eachDescendant, CssAnimationProperty, CSSHelper } from '@nativescript/core';\n\nimport { NativeScriptAnimationPlayer } from './animation-player';\nimport { Keyframe, dashCaseToCamelCase } from './utils';\nimport { InvisibleNode } from '../views/invisible-nodes';\nimport { NgView } from '../views/view-types';\nimport { NativeScriptDebug } from '../trace';\n\ninterface ViewMatchResult {\n found: boolean;\n}\n\ninterface ViewMatchParams {\n originalView: NgView;\n}\n\ninterface QueryParams {\n selector: Selector;\n multi: boolean;\n}\n\ninterface QueryResult {\n matches: NgView[];\n}\n\nclass Selector {\n private nsSelectors: Array<any>;\n private classSelectors: string[];\n\n constructor(rawSelector: string) {\n this.parse(rawSelector);\n }\n\n match(element: NgView): boolean {\n return this.nsSelectorMatch(element) || this.classSelectorsMatch(element);\n }\n\n private parse(rawSelector: string) {\n const selectors = rawSelector.split(',').map((s) => s.trim());\n\n this.nsSelectors = selectors.map(CSSHelper.createSelector);\n this.classSelectors = selectors.filter((s) => s.startsWith('.')).map((s) => s.substring(1));\n }\n\n private nsSelectorMatch(element: NgView) {\n return this.nsSelectors.some((s) => s.match(element));\n }\n\n private classSelectorsMatch(element: NgView) {\n return this.classSelectors.some((s) => this.hasClass(element, s));\n }\n\n // we're using that instead of match for classes\n // that are dynamically added by the animation engine\n // such as .ng-trigger, that's added for every :enter view\n private hasClass(element: NgView, cls: string) {\n return element && element['$$classes'] && element['$$classes'][cls];\n }\n}\n\nexport class NativeScriptAnimationDriver implements AnimationDriver {\n private static validProperties = [...CssAnimationProperty._getPropertyNames(), 'transform'];\n\n getParentElement(element: NgView): NgView {\n return element?.parent as NgView;\n }\n\n validateStyleProperty(property: string): boolean {\n NativeScriptDebug.animationsLog(`CssAnimationProperty.validateStyleProperty: ${property}`);\n return NativeScriptAnimationDriver.validProperties.indexOf(property) !== -1;\n }\n\n matchesElement(element: NgView, rawSelector: string): boolean {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.matchesElement ` + `element: ${element}, selector: ${rawSelector}`);\n\n const selector = this.makeSelector(rawSelector);\n return selector.match(element);\n }\n\n containsElement(elm1: NgView, elm2: NgView): boolean {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.containsElement ` + `element1: ${elm1}, element2: ${elm2}`);\n\n // Checking if the parent is our fake body object\n if (elm1['isOverride']) {\n return true;\n }\n\n const params: ViewMatchParams = { originalView: elm2 };\n const result: ViewMatchResult = this.visitDescendants(elm1, viewMatches, params);\n\n return result.found;\n }\n\n query(element: NgView, rawSelector: string, multi: boolean): NgView[] {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.query ` + `element: ${element}, selector: ${rawSelector} ` + `multi: ${multi}`);\n\n const selector = this.makeSelector(rawSelector);\n const params: QueryParams = { selector, multi };\n const result: QueryResult = this.visitDescendants(element, queryDescendants, params);\n\n return result.matches || [];\n }\n\n computeStyle(element: NgView, prop: string): string {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.computeStyle ` + `element: ${element}, prop: ${prop}`);\n\n const camelCaseProp = dashCaseToCamelCase(prop);\n return element.style[camelCaseProp];\n }\n\n animate(element: NgView, keyframes: Keyframe[], duration: number, delay: number, easing: string): AnimationPlayer {\n NativeScriptDebug.animationsLog(`NativeScriptAnimationDriver.animate ` + `element: ${element}, keyframes: ${keyframes} ` + `duration: ${duration}, delay: ${delay} ` + `easing: ${easing}`);\n\n return new NativeScriptAnimationPlayer(element, keyframes, duration, delay, easing);\n }\n\n private makeSelector(rawSelector: string): Selector {\n return new Selector(rawSelector);\n }\n\n private visitDescendants(element: NgView, cb: (child: NgView, result: any, params: any) => boolean, cbParams: any): any {\n const result = {};\n // fill the result obj with the result from the callback function\n eachDescendant(element, (child: NgView) => cb(child, result, cbParams));\n\n return result;\n }\n}\n\nfunction viewMatches(element: NgView, result: ViewMatchResult, params: ViewMatchParams): boolean {\n if (element === params.originalView) {\n result.found = true;\n }\n\n return !result.found;\n}\n\nfunction queryDescendants(element: NgView, result: QueryResult, params: QueryParams): boolean {\n if (!result.matches) {\n result.matches = [];\n }\n\n const { selector, multi } = params;\n\n // skip comment and text nodes\n // because they are not actual Views\n // and cannot be animated\n if (element instanceof InvisibleNode || !selector.match(element)) {\n return true;\n }\n\n if (element instanceof ProxyViewContainer) {\n element.eachChild((child: NgView) => {\n result.matches.push(child);\n return true;\n });\n } else {\n result.matches.push(element);\n }\n\n return multi;\n}\n","import { NgModule, Injectable, Inject, NgZone, RendererFactory2, Optional, SkipSelf, ɵChangeDetectionScheduler as ChangeDetectionScheduler, inject } from '@angular/core';\nimport { DOCUMENT } from '@angular/common';\nimport { AnimationBuilder, ɵBrowserAnimationBuilder as BrowserAnimationBuilder } from '@angular/animations';\n\nimport { AnimationDriver, ɵAnimationRendererFactory as AnimationRendererFactory, ɵAnimationStyleNormalizer as AnimationStyleNormalizer, ɵWebAnimationsStyleNormalizer as WebAnimationsStyleNormalizer, ɵAnimationEngine as AnimationEngine } from '@angular/animations/browser';\n\n// import { NativeScriptModule } from \"../nativescript.module\";\nimport { NativeScriptRendererFactory } from '../nativescript-renderer';\nimport { NativeScriptAnimationDriver } from './animation-driver';\nimport { throwIfAlreadyLoaded } from '../utils/general';\nimport { NativeScriptCommonModule } from '../nativescript-common.module';\n\n@Injectable()\nexport class InjectableAnimationEngine extends AnimationEngine {\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(@Inject(DOCUMENT) doc: any, driver: AnimationDriver, normalizer: AnimationStyleNormalizer) {\n super(doc, driver, normalizer);\n }\n}\n\nexport function instantiateSupportedAnimationDriver() {\n return new NativeScriptAnimationDriver();\n}\n\nexport function instantiateRendererFactory(renderer: NativeScriptRendererFactory, engine: AnimationEngine, zone: NgZone) {\n return new AnimationRendererFactory(renderer, engine, zone);\n}\n\nexport function instantiateDefaultStyleNormalizer() {\n return new WebAnimationsStyleNormalizer();\n}\n\n@NgModule({\n imports: [NativeScriptCommonModule],\n providers: [\n {\n provide: AnimationDriver,\n useFactory: instantiateSupportedAnimationDriver,\n },\n { provide: AnimationBuilder, useClass: BrowserAnimationBuilder },\n {\n provide: AnimationStyleNormalizer,\n useFactory: instantiateDefaultStyleNormalizer,\n },\n { provide: AnimationEngine, useClass: InjectableAnimationEngine },\n {\n provide: RendererFactory2,\n useFactory: instantiateRendererFactory,\n deps: [NativeScriptRendererFactory, AnimationEngine, NgZone],\n },\n ],\n})\nexport class NativeScriptAnimationsModule {\n // eslint-disable-next-line @angular-eslint/prefer-inject\n constructor(@Optional() @SkipSelf() parentModule: NativeScriptAnimationsModule) {\n // Prevents NativeScriptAnimationsModule from getting imported multiple times\n throwIfAlreadyLoaded(parentModule, 'NativeScriptAnimationsModule');\n }\n}\n","import { path } from '@nativescript/core';\nimport { Observable, Observer } from 'rxjs';\nimport { NSFileSystem } from '../file-system/ns-file-system';\n\nexport type httpResponseFactory<T> = (url: string, body: any, status: number) => T;\nexport type httpErrorFactory = (url: string, body: any, status: number) => any;\n\nexport function isLocalRequest(url: string): boolean {\n return url.indexOf('~') === 0 || url.indexOf('/') === 0;\n}\n\nexport function getAbsolutePath(url: string, nsFileSystem: NSFileSystem): string {\n url = url.replace('~', '').replace('/', '');\n url = path.join(nsFileSystem.currentApp().path, url);\n return url;\n}\n\nexport function processLocalFileRequest<T>(url: string, nsFileSystem: NSFileSystem, successResponse: httpResponseFactory<T>, errorResponse: httpErrorFactory): Observable<T> {\n url = getAbsolutePath(url, nsFileSystem);\n\n // request from local app resources\n return new Observable((observer: Observer<T>) => {\n if (nsFileSystem.fileExists(url)) {\n const localFile = nsFileSystem.fileFromPath(url);\n localFile.readText().then(\n (data) => {\n try {\n const json = JSON.parse(data);\n observer.next(successResponse(url, json, 200));\n observer.complete();\n } catch (error) {\n // Even though the response status was 2xx, this is still an error.\n // The parse error contains the text of the body that failed to parse.\n const errorResult = { error, text: data };\n observer.error(errorResponse(url, errorResult, 200));\n }\n },\n (err: unknown) => {\n observer.error(errorResponse(url, err, 400));\n }\n );\n } else {\n observer.error(errorResponse(url, 'Not Found', 404));\n }\n });\n}\n","import { Injectable } from '@angular/core';\nimport { HttpRequest, HttpEvent, HttpResponse, HttpErrorResponse, HttpXhrBackend } from '@angular/common/http';\nimport { XhrFactory } from '@angular/common';\nimport { Observable } from 'rxjs';\n\nimport { NSFileSystem } from '../file-system/ns-file-system';\nimport { isLocalRequest, processLocalFileRequest } from './http-utils';\n\n@Injectable()\nexport class NsHttpBackEnd extends HttpXhrBackend {\n constructor(xhrFactory: XhrFactory, private nsFileSystem: NSFileSystem) {\n super(xhrFactory);\n }\n\n handle(req: HttpRequest<any>): Observable<HttpEvent<any>> {\n let result: Observable<HttpEvent<any>>;\n\n if (isLocalRequest(req.url)) {\n result = this.handleLocalFileRequest(req.url);\n } else {\n result = super.handle(req);\n }\n\n return result;\n }\n\n private handleLocalFileRequest(url: string): Observable<HttpEvent<any>> {\n return processLocalFileRequest(url, this.nsFileSystem, createSuccessResponse, createErrorResponse);\n }\n}\n\nfunction createSuccessResponse(url: string, body: any, status: number): HttpEvent<any> {\n return new HttpResponse({\n url,\n body,\n status,\n statusText: 'OK',\n });\n}\n\nfunction createErrorResponse(url: string, body: any, status: number): HttpErrorResponse {\n return new HttpErrorResponse({\n url,\n error: body,\n status,\n statusText: 'ERROR',\n });\n}\n","import {\n HttpBackend,\n HttpFeature,\n HttpFeatureKind,\n provideHttpClient,\n withInterceptorsFromDi,\n} from '@angular/common/http';\nimport { makeEnvironmentProviders, NgModule } from '@angular/core';\n\nimport { NSFileSystem } from '../file-system/ns-file-system';\nimport { NsHttpBackEnd } from './ns-http-backend';\n\nexport function provideNativeScriptHttpClient(...features: HttpFeature<HttpFeatureKind>[]) {\n return makeEnvironmentProviders([\n provideHttpClient(...features),\n NSFileSystem,\n NsHttpBackEnd,\n { provide: HttpBackend, useExisting: NsHttpBackEnd },\n ]);\n}\n@NgModule({\n providers: [provideNativeScriptHttpClient(withInterceptorsFromDi())],\n})\nexport class NativeScriptHttpClientModule {}\n","import { ComponentRef } from '@angular/core';\nimport { ActivatedRoute, ActivatedRouteSnapshot, ChildrenOutletContexts, PRIMARY_OUTLET } from '@angular/router';\n\n/**\n * There are cases where multiple activatedRoute nodes should be associated/handled by the same PageRouterOutlet.\n * We can gat additional ActivatedRoutes nodes when there is:\n * - Lazy loading - there is an additional ActivatedRoute node for the RouteConfig with the `loadChildren` setup\n * - Componentless routes - there is an additional ActivatedRoute node for the componentless RouteConfig\n *\n * Example:\n * R <-- root\n * |\n * feature (lazy module) <-- RouteConfig: { path: \"lazy\", loadChildren: \"./feature/feature.module#FeatureModule\" }\n * |\n * module (componentless route) <-- RouteConfig: { path: \"module\", children: [...] } // Note: No 'component'\n * |\n * home <-- RouteConfig: { path: \"module\", component: MyComponent } - this is what we get as activatedRoute param\n *\n * In these cases we will mark the top-most node (feature). NSRouteReuseStrategy will detach the tree there and\n * use this ActivateRoute as a kay for caching.\n */\nexport function findTopActivatedRouteNodeForOutlet(activatedRoute: ActivatedRouteSnapshot): ActivatedRouteSnapshot {\n // TODO: test this and figure it out if it's really no longer needed\n return activatedRoute;\n // let outletActivatedRoute = activatedRoute;\n\n // while (outletActivatedRoute.parent && outletActivatedRoute.parent.routeConfig && !outletActivatedRoute.parent.routeConfig.component) {\n // outletActivatedRoute = outletActivatedRoute.parent;\n // }\n\n // return outletActivatedRoute;\n}\n\nexport const pageRouterActivatedSymbol = Symbol('page-router-activated');\nexport const loaderRefSymbol = Symbol('loader-ref');\n\nexport function destroyComponentRef(componentRef: ComponentRef<any>) {\n if (componentRef) {\n const loaderRef = componentRef[loaderRefSymbol];\n if (loaderRef) {\n loaderRef.destroy();\n }\n componentRef.destroy();\n }\n}\n","import { Injectable } from '@angular/core';\nimport { RouteReuseStrategy, ActivatedRouteSnapshot, DetachedRouteHandle } from '@angular/router';\n\nimport { NativeScriptDebug } from '../../trace';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { destroyComponentRef, findTopActivatedRouteNodeForOutlet, pageRouterActivatedSymbol } from './page-router-outlet-utils';\n\ninterface CacheItem {\n key: string;\n state: DetachedRouteHandle;\n isModal: boolean;\n markedForDeletion?: boolean;\n}\n\nconst getSnapshotKey = function (snapshot: ActivatedRouteSnapshot): string {\n return snapshot.pathFromRoot.join('->');\n};\n\n/**\n * Detached state cache\n */\nclass DetachedStateCache {\n private cache = new Array<CacheItem>();\n\n public get length(): number {\n return this.cache.length;\n }\n\n public push(cacheItem: CacheItem) {\n this.cache.push(cacheItem);\n }\n\n public pop(): CacheItem {\n return this.cache.pop();\n }\n\n public peek(): CacheItem {\n return this.cache[this.cache.length - 1];\n }\n\n public clear() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`DetachedStateCache.clear() ${this.cache.length} items will be destroyed`);\n }\n\n while (this.cache.length > 0) {\n const state = <any>this.cache.pop().state;\n if (!state.componentRef) {\n throw new Error('No componentRef found in DetachedRouteHandle');\n }\n\n destroyComponentRef(state.componentRef);\n }\n }\n\n public markCurrentForClear() {\n for (const item of this.cache) {\n item.markedForDeletion = true;\n }\n }\n\n public clearMarked() {\n // try to preserve same order as .clear()\n for (let i = this.cache.length - 1; i >= 0; i--) {\n const cacheItem = this.cache[i];\n if (cacheItem.markedForDeletion) {\n const state = <any>cacheItem.state;\n if (!state.componentRef) {\n throw new Error('No componentRef found in DetachedRouteHandle');\n }\n\n destroyComponentRef(state.componentRef);\n this.cache.splice(i, 1);\n }\n }\n }\n\n public clearModalCache() {\n let removedItemsCount = 0;\n const hasModalPages = this.cache.some((cacheItem) => {\n return cacheItem.isModal;\n });\n\n if (hasModalPages) {\n let modalCacheCleared = false;\n\n while (!modalCacheCleared) {\n const cacheItem = this.peek();\n const state = <any>cacheItem.state;\n\n if (!state.componentRef) {\n throw new Error('No componentRef found in DetachedRouteHandle');\n }\n\n destroyComponentRef(state.componentRef);\n if (cacheItem.isModal) {\n modalCacheCleared = true;\n }\n\n this.pop();\n removedItemsCount++;\n }\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`DetachedStateCache.clearModalCache() ${removedItemsCount} items will be destroyed`);\n }\n }\n}\n\n/**\n * Detaches subtrees loaded inside PageRouterOutlet in forward navigation\n * and reattaches them on back.\n * Reuses routes as long as their route config is the same.\n */\n@Injectable()\nexport class NSRouteReuseStrategy implements RouteReuseStrategy {\n private cacheByOutlet: { [key: string]: DetachedStateCache } = {};\n\n constructor(private location: NSLocationStrategy) {}\n\n shouldDetach(route: ActivatedRouteSnapshot): boolean {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const { outlet } = this.findValidOutletAndKey(route);\n const key = getSnapshotKey(route);\n\n let isPageActivated = false;\n let tmp = route;\n while (!(isPageActivated = tmp[pageRouterActivatedSymbol]) && tmp.parent) {\n tmp = tmp.parent;\n }\n const isBack = outlet ? outlet.isPageNavigationBack : false;\n let shouldDetach = outlet && !isBack && isPageActivated;\n\n if (outlet) {\n if (outlet.parent && !outlet.parent.shouldDetach) {\n shouldDetach = false;\n }\n\n outlet.shouldDetach = shouldDetach;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`shouldDetach isBack: ${isBack} key: ${key} result: ${shouldDetach}`);\n }\n\n return shouldDetach;\n }\n protected findValidOutletAndKey(targetRoute: ActivatedRouteSnapshot) {\n let route = targetRoute;\n const routeOutletKey = this.location.getRouteFullPath(route);\n let outletKey = routeOutletKey;\n let outlet = this.location.findOutlet(outletKey, route);\n while (!outlet) {\n if (!route.parent) {\n return { outlet: null, outletKey: routeOutletKey };\n }\n route = route.parent;\n outletKey = this.location.getRouteFullPath(route);\n outlet = this.location.findOutlet(outletKey, route);\n }\n\n if (outlet) {\n while (!outlet.outletKeys.includes(outletKey)) {\n if (!route.parent) {\n NativeScriptDebug.routeReuseStrategyLog(`Could not find valid outlet key for route: ${targetRoute}.`);\n return { outlet, outletKey: routeOutletKey };\n }\n route = route.parent;\n outletKey = this.location.getRouteFullPath(route);\n }\n }\n\n return { outlet, outletKey };\n }\n\n shouldAttach(route: ActivatedRouteSnapshot): boolean {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const { outlet, outletKey } = this.findValidOutletAndKey(route);\n const cache = this.cacheByOutlet[outletKey];\n if (!cache) {\n return false;\n }\n\n const key = getSnapshotKey(route);\n const isBack = outlet ? outlet.isPageNavigationBack : false;\n const shouldAttach = isBack && cache.peek()?.key === key;\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`shouldAttach isBack: ${isBack} key: ${key} result: ${shouldAttach}`);\n }\n\n if (outlet) {\n outlet.shouldDetach = true;\n }\n\n return shouldAttach;\n }\n\n store(route: ActivatedRouteSnapshot, state: DetachedRouteHandle): void {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const key = getSnapshotKey(route);\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`store key: ${key}, state: ${state}`);\n }\n\n const { outletKey } = this.findValidOutletAndKey(route);\n\n // tslint:disable-next-line:max-line-length\n const cache = (this.cacheByOutlet[outletKey] = this.cacheByOutlet[outletKey] || new DetachedStateCache());\n\n if (state) {\n let isModal = false;\n if (this.location._modalNavigationDepth > 0) {\n isModal = true;\n }\n\n cache.push({ key, state, isModal });\n } else {\n const topItem = cache.peek();\n if (topItem.key === key) {\n cache.pop();\n\n if (!cache.length) {\n delete this.cacheByOutlet[outletKey];\n }\n } else {\n throw new Error(\"Trying to pop from DetachedStateCache but keys don't match. \" + `expected: ${topItem.key} actual: ${key}`);\n }\n }\n }\n\n retrieve(route: ActivatedRouteSnapshot): DetachedRouteHandle | null {\n route = findTopActivatedRouteNodeForOutlet(route);\n\n const { outlet, outletKey } = this.findValidOutletAndKey(route);\n const cache = this.cacheByOutlet[outletKey];\n if (!cache) {\n return null;\n }\n\n const key = getSnapshotKey(route);\n const isBack = outlet ? outlet.isPageNavigationBack : false;\n const cachedItem = cache.peek();\n\n let state = null;\n if (isBack && cachedItem && cachedItem.key === key) {\n state = cachedItem.state;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`retrieved isBack: ${isBack} key: ${key} state: ${state}`);\n }\n\n return state;\n }\n\n shouldReuseRoute(future: ActivatedRouteSnapshot, curr: ActivatedRouteSnapshot): boolean {\n const shouldReuse = future.routeConfig === curr.routeConfig;\n\n if (shouldReuse && curr && curr[pageRouterActivatedSymbol]) {\n // When reusing route - copy the pageRouterActivated to the new snapshot\n // It's needed in shouldDetach to determine if the route should be detached.\n future[pageRouterActivatedSymbol] = curr[pageRouterActivatedSymbol];\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routeReuseStrategyLog(`shouldReuseRoute result: ${shouldReuse}`);\n }\n\n return shouldReuse;\n }\n\n clearCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.clear();\n }\n }\n\n markCacheForClear(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.markCurrentForClear();\n }\n }\n\n popCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n if (cache.peek()) {\n const state: any = cache.pop()?.state;\n if (state?.componentRef) {\n destroyComponentRef(state?.componentRef);\n }\n }\n }\n }\n\n markCacheForPop(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n const item = cache.peek();\n if (item) {\n item.markedForDeletion = true;\n }\n }\n }\n\n clearMarkedCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.clearMarked();\n }\n }\n\n clearModalCache(outletKey: string) {\n const cache = this.cacheByOutlet[outletKey];\n\n if (cache) {\n cache.clearModalCache();\n }\n }\n}\n","import { Injectable } from '@angular/core';\nimport { ActivatedRoute, NavigationBehaviorOptions, NavigationExtras, Router, UrlTree } from '@angular/router';\nimport { NativeScriptDebug } from '../../trace';\nimport { FrameService } from '../frame.service';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { NavigationOptions, Outlet } from './ns-location-utils';\nimport { findTopActivatedRouteNodeForOutlet } from './page-router-outlet-utils';\n\nexport type ExtendedNavigationExtras = NavigationExtras & NavigationOptions;\nexport type ExtendedNavigationBehaviorOptions = NavigationBehaviorOptions & NavigationOptions;\n\nexport interface BackNavigationOptions {\n outlets?: Array<string>;\n relativeTo?: ActivatedRoute | null;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RouterExtensions {\n constructor(public router: Router, public locationStrategy: NSLocationStrategy, public frameService: FrameService) {}\n\n public navigate(commands: any[], extras?: ExtendedNavigationExtras): Promise<boolean> {\n return this.router.navigate(commands, extras);\n }\n\n public navigateByUrl(url: string | UrlTree, options?: ExtendedNavigationBehaviorOptions): Promise<boolean> {\n return this.router.navigateByUrl(url, options);\n }\n\n public back(backNavigationOptions?: BackNavigationOptions) {\n if (backNavigationOptions) {\n this.backOutlets(backNavigationOptions);\n } else {\n this.locationStrategy.back();\n }\n }\n\n public canGoBack(backNavigationOptions?: BackNavigationOptions) {\n let canGoBack = true;\n if (backNavigationOptions) {\n const { outletsToBack, outlets } = this.findOutletsToBack(backNavigationOptions);\n\n if (outletsToBack.length !== outlets.length) {\n NativeScriptDebug.routerError('No outlet found relative to activated route');\n } else {\n outletsToBack.forEach((outletToBack) => {\n if (!this.locationStrategy.canGoBack(outletToBack)) {\n canGoBack = false;\n }\n });\n }\n } else {\n canGoBack = this.locationStrategy.canGoBack();\n }\n\n return canGoBack;\n }\n\n public backToPreviousPage() {\n this.frameService.getFrame().goBack();\n }\n\n public canGoBackToPreviousPage(): boolean {\n return this.frameService.getFrame().canGoBack();\n }\n\n private backOutlets(options: BackNavigationOptions) {\n const { outletsToBack, outlets } = this.findOutletsToBack(options);\n\n if (outletsToBack.length !== outlets.length) {\n NativeScriptDebug.routerError('No outlet found relative to activated route');\n } else {\n outletsToBack.forEach((outletToBack) => {\n if (outletToBack.isPageNavigationBack) {\n NativeScriptDebug.routerError('Attempted to call startGoBack while going back:');\n } else {\n this.locationStrategy.back(outletToBack);\n }\n });\n }\n }\n\n // tslint:disable-next-line:max-line-length\n private findOutletsToBack(options?: BackNavigationOptions): { outletsToBack: Array<Outlet>; outlets: Array<string> } {\n const rootRoute: ActivatedRoute = this.router.routerState.root;\n let outlets = options.outlets;\n let relativeRoute = options.relativeTo || rootRoute;\n\n const relativeRouteOutlet = this.findOutletByRoute(relativeRoute);\n const isNSEmptyOutlet = relativeRouteOutlet && relativeRouteOutlet.isNSEmptyOutlet;\n\n // Lazy named outlet has added 'primary' inner NSEmptyOutlet child.\n // Take parent route when `relativeTo` option points to the outer named outlet.\n if (isNSEmptyOutlet && relativeRoute.outlet !== 'primary') {\n relativeRoute = relativeRoute.parent || relativeRoute;\n }\n\n outlets = outlets || [relativeRoute.outlet];\n\n const outletsToBack = this.findOutletsRecursive([...outlets], relativeRoute);\n\n return { outletsToBack: outletsToBack, outlets: outlets };\n }\n\n // warning, outlets is mutable!\n private findOutletsRecursive(outlets: string[], route?: ActivatedRoute) {\n if (!route || outlets.length === 0) {\n return [];\n }\n const outletsToBack = [];\n if (outlets.some((currentOutlet) => currentOutlet === route.outlet)) {\n const outlet = this.findOutletByRoute(route);\n if (outlet) {\n outlets.splice(outlets.indexOf(route.outlet), 1);\n outletsToBack.push(outlet);\n }\n }\n if (!route.children) {\n return outletsToBack;\n }\n for (let index = 0; index < route.children.length; index++) {\n if (outlets.length === 0) {\n break;\n }\n const currentRoute = route.children[index];\n outletsToBack.push(...this.findOutletsRecursive(outlets, currentRoute));\n }\n return outletsToBack;\n }\n\n private findOutletByRoute(currentRoute: ActivatedRoute): Outlet {\n const currentRouteSnapshop = findTopActivatedRouteNodeForOutlet(currentRoute.snapshot);\n const outletKey = this.locationStrategy.getRouteFullPath(currentRouteSnapshop);\n const outlet = this.locationStrategy.findOutlet(outletKey, currentRouteSnapshop);\n\n return outlet;\n }\n}\n","import { Directive, Input, ElementRef, NgZone, AfterViewInit } from '@angular/core';\nimport { NavigationExtras } from '@angular/router';\nimport { ActivatedRoute, Router, UrlTree } from '@angular/router';\nimport { NavigationTransition } from '@nativescript/core';\nimport { NativeScriptDebug } from '../../trace';\nimport { RouterExtensions } from './router-extensions';\nimport { NavigationOptions } from './ns-location-utils';\n\n// Copied from \"@angular/router/src/config\"\nexport type QueryParamsHandling = 'merge' | 'preserve' | '';\n\n/**\n * The nsRouterLink directive lets you link to specific parts of your app.\n *\n * Consider the following route configuration:\n * ```\n * [{ path: \"/user\", component: UserCmp }]\n * ```\n *\n * When linking to this `User` route, you can write:\n *\n * ```\n * <a [nsRouterLink]=\"[\"/user\"]\">link to user component</a>\n * ```\n *\n * NSRouterLink expects the value to be an array of path segments, followed by the params\n * for that level of routing. For instance `[\"/team\", {teamId: 1}, \"user\", {userId: 2}]`\n * means that we want to generate a link to `/team;teamId=1/user;userId=2`.\n *\n * The first segment name can be prepended with `/`, `./`, or `../`.\n * If the segment begins with `/`, the router will look up the route from the root of the app.\n * If the segment begins with `./`, or doesn\"t begin with a slash, the router will\n * instead look in the current component\"s children for the route.\n * And if the segment begins with `../`, the router will go up one level.\n */\n@Directive({ \n selector: '[nsRouterLink]', \n standalone: true,\n})\nexport class NSRouterLink implements AfterViewInit {\n // tslint:disable-line:directive-class-suffix\n @Input() target: string;\n @Input() queryParams: { [k: string]: any };\n @Input() fragment: string;\n\n @Input() queryParamsHandling: QueryParamsHandling;\n @Input() preserveQueryParams: boolean;\n @Input() preserveFragment: boolean;\n @Input() skipLocationChange: boolean;\n @Input() replaceUrl: boolean;\n\n @Input() clearHistory: boolean;\n @Input() pageTransition: boolean | string | NavigationTransition = true;\n @Input() pageTransitionDuration;\n\n private commands: any[] = [];\n\n constructor(private ngZone: NgZone, private router: Router, private navigator: RouterExtensions, private route: ActivatedRoute, private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.el.nativeElement.on('tap', () => {\n this.ngZone.run(() => {\n this.onTap();\n });\n });\n }\n\n @Input('nsRouterLink')\n set params(data: any[] | string) {\n if (Array.isArray(data)) {\n this.commands = data;\n } else {\n this.commands = [data];\n }\n }\n\n onTap() {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`nsRouterLink.tapped: ${this.commands} ` + `clear: ${this.clearHistory} ` + `transition: ${JSON.stringify(this.pageTransition)} ` + `duration: ${this.pageTransitionDuration}`);\n }\n\n const extras = this.getExtras();\n // this.navigator.navigateByUrl(this.urlTree, extras);\n this.navigator.navigate(this.commands, {\n ...extras,\n relativeTo: this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n }\n\n private getExtras(): NavigationExtras & NavigationOptions {\n const transition = this.getTransition();\n return {\n skipLocationChange: attrBoolValue(this.skipLocationChange),\n replaceUrl: attrBoolValue(this.replaceUrl),\n\n clearHistory: this.convertClearHistory(this.clearHistory),\n animated: transition.animated,\n transition: transition.transition,\n };\n }\n\n get urlTree(): UrlTree {\n const urlTree = this.router.createUrlTree(this.commands, {\n relativeTo: this.route,\n queryParams: this.queryParams,\n fragment: this.fragment,\n queryParamsHandling: this.queryParamsHandling,\n preserveFragment: attrBoolValue(this.preserveFragment),\n });\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`nsRouterLink urlTree created: ${urlTree}`);\n }\n\n return urlTree;\n }\n\n private convertClearHistory(value: boolean | string): boolean {\n return value === true || value === 'true';\n }\n\n private getTransition(): { animated: boolean; transition?: NavigationTransition } {\n let transition: NavigationTransition;\n let animated: boolean;\n\n if (typeof this.pageTransition === 'boolean') {\n animated = this.pageTransition;\n } else if (typeof this.pageTransition === 'string') {\n if (this.pageTransition === 'none' || this.pageTransition === 'false') {\n animated = false;\n } else {\n animated = true;\n transition = {\n name: <string>this.pageTransition,\n };\n }\n } else {\n animated = true;\n transition = <NavigationTransition>this.pageTransition;\n }\n\n const duration = +this.pageTransitionDuration;\n if (!isNaN(duration)) {\n transition = transition || {};\n transition.duration = duration;\n }\n\n return { animated, transition };\n }\n}\n\nfunction attrBoolValue(s: any): boolean {\n return s === '' || !!s;\n}\n","/* tslint:disable:forin */\n// Copied unexported functions from @angular/router/src/url_tree\nimport { UrlTree, UrlSegment, PRIMARY_OUTLET } from '@angular/router';\n// UrlSegmentGroup not exported, just use any.\ntype UrlSegmentGroup = any;\n\nexport function containsTree(container: UrlTree, containee: UrlTree, exact: boolean): boolean {\n if (exact) {\n return equalSegmentGroups(container.root, containee.root);\n } else {\n return containsSegmentGroup(container.root, containee.root);\n }\n}\n\nfunction equalSegmentGroups(container: UrlSegmentGroup, containee: UrlSegmentGroup): boolean {\n if (!equalPath(container.segments, containee.segments)) {\n return false;\n }\n if (container.numberOfChildren !== containee.numberOfChildren) {\n return false;\n }\n for (const c in containee.children) {\n if (!container.children[c]) {\n return false;\n }\n if (!equalSegmentGroups(container.children[c], containee.children[c])) {\n return false;\n }\n }\n return true;\n}\n\nfunction containsSegmentGroup(container: UrlSegmentGroup, containee: UrlSegmentGroup): boolean {\n return containsSegmentGroupHelper(container, containee, containee.segments);\n}\n\nfunction containsSegmentGroupHelper(container: UrlSegmentGroup, containee: UrlSegmentGroup, containeePaths: UrlSegment[]): boolean {\n if (container.segments.length > containeePaths.length) {\n const current = container.segments.slice(0, containeePaths.length);\n if (!equalPath(current, containeePaths)) {\n return false;\n }\n if (containee.hasChildren()) {\n return false;\n }\n return true;\n } else if (container.segments.length === containeePaths.length) {\n if (!equalPath(container.segments, containeePaths)) {\n return false;\n }\n for (const c in containee.children) {\n if (!container.children[c]) {\n return false;\n }\n if (!containsSegmentGroup(container.children[c], containee.children[c])) {\n return false;\n }\n }\n return true;\n } else {\n const current = containeePaths.slice(0, container.segments.length);\n const next = containeePaths.slice(container.segments.length);\n if (!equalPath(container.segments, current)) {\n return false;\n }\n if (!container.children[PRIMARY_OUTLET]) {\n return false;\n }\n return containsSegmentGroupHelper(container.children[PRIMARY_OUTLET], containee, next);\n }\n}\n\nexport function equalPath(a: UrlSegment[], b: UrlSegment[]): boolean {\n if (a.length !== b.length) {\n return false;\n }\n for (let i = 0; i < a.length; ++i) {\n if (a[i].path !== b[i].path) {\n return false;\n }\n }\n return true;\n}\n","import { AfterContentInit, ContentChildren, Directive, ElementRef, Input, OnChanges, OnDestroy, QueryList, Renderer2 } from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NavigationEnd, Router, UrlTree } from '@angular/router';\nimport { containsTree } from './private-imports/router-url-tree';\n\nimport { NSRouterLink } from './ns-router-link';\n\n/**\n * The NSRouterLinkActive directive lets you add a CSS class to an element when the link\"s route\n * becomes active.\n *\n * Consider the following example:\n *\n * ```\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"active-link\">Bob</a>\n * ```\n *\n * When the url is either \"/user\" or \"/user/bob\", the active-link class will\n * be added to the component. If the url changes, the class will be removed.\n *\n * You can set more than one class, as follows:\n *\n * ```\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"class1 class2\">Bob</a>\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"[\"class1\", \"class2\"]\">Bob</a>\n * ```\n *\n * You can configure NSRouterLinkActive by passing `exact: true`. This will add the\n * classes only when the url matches the link exactly.\n *\n * ```\n * <a [nsRouterLink]=\"/user/bob\" [nsRouterLinkActive]=\"active-link\"\n * [nsRouterLinkActiveOptions]=\"{exact: true}\">Bob</a>\n * ```\n *\n * Finally, you can apply the NSRouterLinkActive directive to an ancestor of a RouterLink.\n *\n * ```\n * <div [nsRouterLinkActive]=\"active-link\" [nsRouterLinkActiveOptions]=\"{exact: true}\">\n * <a [nsRouterLink]=\"/user/jim\">Jim</a>\n * <a [nsRouterLink]=\"/user/bob\">Bob</a>\n * </div>\n * ```\n *\n * This will set the active-link class on the div tag if the url is either \"/user/jim\" or\n * \"/user/bob\".\n *\n * @stable\n */\n@Directive({\n selector: '[nsRouterLinkActive]',\n exportAs: 'routerLinkActive',\n standalone: true,\n})\nexport class NSRouterLinkActive implements OnChanges, OnDestroy, AfterContentInit {\n // tslint:disable-line:max-line-length directive-class-suffix\n @ContentChildren(NSRouterLink) links: QueryList<NSRouterLink>;\n\n private classes: string[] = [];\n private subscription: Subscription;\n private active = false;\n\n @Input() nsRouterLinkActiveOptions: { exact: boolean } = { exact: false };\n\n constructor(private router: Router, private element: ElementRef, private renderer: Renderer2) {\n this.subscription = router.events.subscribe((s) => {\n if (s instanceof NavigationEnd) {\n this.update();\n }\n });\n }\n\n get isActive(): boolean {\n return this.active;\n }\n\n ngAfterContentInit(): void {\n this.links.changes.subscribe(() => this.update());\n this.update();\n }\n\n @Input()\n set nsRouterLinkActive(data: string[] | string) {\n if (Array.isArray(data)) {\n this.classes = <any>data;\n } else {\n this.classes = data.split(' ');\n }\n }\n\n ngOnChanges() {\n this.update();\n }\n ngOnDestroy() {\n this.subscription.unsubscribe();\n }\n\n private update(): void {\n if (!this.links) {\n return;\n }\n const hasActiveLinks = this.hasActiveLinks();\n // react only when status has changed to prevent unnecessary dom updates\n if (this.active !== hasActiveLinks) {\n const currentUrlTree = this.router.parseUrl(this.router.url);\n const isActiveLinks = this.reduceList(currentUrlTree, this.links);\n this.classes.forEach((c) => {\n if (isActiveLinks) {\n this.renderer.addClass(this.element.nativeElement, c);\n } else {\n this.renderer.removeClass(this.element.nativeElement, c);\n }\n });\n }\n Promise.resolve(hasActiveLinks).then((active) => (this.active = active));\n }\n\n private reduceList(currentUrlTree: UrlTree, q: QueryList<any>): boolean {\n return q.reduce((res: boolean, link: NSRouterLink) => {\n return res || containsTree(currentUrlTree, link.urlTree, this.nsRouterLinkActiveOptions.exact);\n }, false);\n }\n\n private isLinkActive(router: Router): (link: NSRouterLink) => boolean {\n return (link: NSRouterLink) => router.isActive(link.urlTree, this.nsRouterLinkActiveOptions.exact);\n }\n\n private hasActiveLinks(): boolean {\n return this.links.some(this.isLinkActive(this.router));\n }\n}\n","import {\n ChangeDetectorRef,\n ComponentFactory,\n ComponentFactoryResolver,\n ComponentRef,\n createComponent,\n Directive,\n ElementRef,\n EnvironmentInjector,\n EventEmitter,\n HostAttributeToken,\n inject,\n InjectionToken,\n InjectOptions,\n Injector,\n NgZone,\n OnDestroy,\n Output,\n Type,\n ViewContainerRef,\n} from '@angular/core';\nimport {\n ActivatedRoute,\n ActivatedRouteSnapshot,\n ChildrenOutletContexts,\n Data,\n PRIMARY_OUTLET,\n Router,\n RouterOutletContract,\n} from '@angular/router';\n\nimport { Frame, NavigatedData, NavigationEntry, Page, profile } from '@nativescript/core';\n\nimport { BehaviorSubject } from 'rxjs';\n\nimport { DetachedLoader } from '../../cdk/detached-loader';\nimport { PageService } from '../../cdk/frame-page/page.service';\nimport { registerElement } from '../../element-registry';\nimport { PAGE_FACTORY, PageFactory } from '../../tokens';\nimport { NativeScriptDebug } from '../../trace';\nimport { ViewUtil } from '../../view-util';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { defaultNavOptions, Outlet } from './ns-location-utils';\nimport { NSRouteReuseStrategy } from './ns-route-reuse-strategy';\nimport {\n destroyComponentRef,\n findTopActivatedRouteNodeForOutlet,\n loaderRefSymbol,\n pageRouterActivatedSymbol,\n} from './page-router-outlet-utils';\nimport { ExtendedNavigationExtras } from './router-extensions';\n\nfunction zoneWrap<T extends (...args: unknown[]) => unknown>(fn: T): T {\n return typeof Zone === 'undefined' ? fn : Zone.current.wrap(fn, 'angular');\n}\n\nexport class PageRoute {\n activatedRoute: BehaviorSubject<ActivatedRoute>;\n\n constructor(startRoute: ActivatedRoute) {\n this.activatedRoute = new BehaviorSubject(startRoute);\n }\n}\n\nfunction isComponentFactoryResolver(item: any): item is ComponentFactoryResolver {\n return !!item.resolveComponentFactory;\n}\n\nfunction callableOnce<T>(fn: (...args: T[]) => void) {\n let called = false;\n return (...args: T[]) => {\n if (called) {\n return;\n }\n called = true;\n return fn(...args);\n };\n}\n\nexport class DestructibleInjector implements Injector {\n private refs = new Set<any>();\n constructor(\n private destructibleProviders: ProviderSet,\n private parent: Injector,\n ) {}\n get<T>(token: Type<T> | InjectionToken<T>, notFoundValue?: T, flags?: InjectOptions): T {\n const ref = this.parent.get(token, notFoundValue, flags);\n\n // if we're skipping ourselves then it's not our responsibility to destroy\n if (!flags?.skipSelf && this.destructibleProviders.has(token)) {\n this.refs.add(ref);\n }\n\n return ref;\n }\n destroy() {\n this.refs.forEach((ref) => {\n if (ref.ngOnDestroy instanceof Function) {\n ref.ngOnDestroy();\n }\n });\n this.refs.clear();\n }\n}\n\ntype ProviderSet = Set<Type<any> | InjectionToken<any>>;\n\nconst routeToString = function (activatedRoute: ActivatedRoute | ActivatedRouteSnapshot): string {\n return activatedRoute.pathFromRoot.join('->');\n};\n\nregisterElement('page-router-outlet', () => Frame);\n// eslint-disable-next-line @angular-eslint/directive-selector\n@Directive({\n selector: 'page-router-outlet',\n standalone: true,\n}) // tslint:disable-line:directive-selector\nexport class PageRouterOutlet implements OnDestroy, RouterOutletContract {\n private parentContexts = inject(ChildrenOutletContexts);\n private location = inject(ViewContainerRef);\n private locationStrategy = inject(NSLocationStrategy);\n private resolver = inject(ComponentFactoryResolver);\n private changeDetector = inject(ChangeDetectorRef);\n private pageFactory = inject<PageFactory>(PAGE_FACTORY);\n private routeReuseStrategy = inject(NSRouteReuseStrategy);\n private ngZone = inject(NgZone);\n private router = inject(Router);\n private environmentInjector = inject(EnvironmentInjector);\n\n // tslint:disable-line:directive-class-suffix\n private activated: ComponentRef<any> | null = null;\n private _activatedRoute: ActivatedRoute | null = null;\n private detachedLoaderFactory: ComponentFactory<DetachedLoader>;\n\n private outlet: Outlet;\n private name: string;\n private isEmptyOutlet: boolean;\n private viewUtil: ViewUtil;\n private frame: Frame;\n // this function is used to clear the outlet cache (clear history)\n // usually it's cleared in `navigatedTo`, but on quick navigation, the event will be fired after angular already added more things to the cache\n // so now we call this if the component is detached or deactivated (meaning it's mid-navigation, before cache manipulation)\n private postNavFunction: () => void;\n\n attachEvents: EventEmitter<unknown> = new EventEmitter();\n detachEvents: EventEmitter<unknown> = new EventEmitter();\n\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('activate') activateEvents = new EventEmitter<any>(); // tslint:disable-line:no-output-rename\n // eslint-disable-next-line @angular-eslint/no-output-rename\n @Output('deactivate') deactivateEvents = new EventEmitter<any>(); // tslint:disable-line:no-output-rename\n\n get isActivated(): boolean {\n return !!this.activated;\n }\n\n get component(): unknown {\n if (!this.activated) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Outlet is not activated');\n }\n return;\n }\n\n return this.activated.instance;\n }\n get activatedRoute(): ActivatedRoute {\n if (!this.activated) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Outlet is not activated');\n }\n return;\n }\n\n return this._activatedRoute;\n }\n\n get activatedRouteData(): Data {\n if (this._activatedRoute) {\n return this._activatedRoute.snapshot.data;\n }\n return {};\n }\n\n constructor() {\n const parentContexts = this.parentContexts;\n const name = inject(new HostAttributeToken('name'), { optional: true });\n const actionBarVisibility = inject(new HostAttributeToken('actionBarVisibility'), { optional: true });\n const isEmptyOutlet = !!inject(new HostAttributeToken('isEmptyOutlet'), { optional: true });\n const resolver = this.resolver;\n const elRef = inject(ElementRef);\n const viewUtil = inject(ViewUtil);\n\n this.isEmptyOutlet = isEmptyOutlet;\n this.frame = elRef.nativeElement;\n this.setActionBarVisibility(actionBarVisibility);\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.constructor frame: ${this.frame}`);\n }\n\n this.name = name || PRIMARY_OUTLET;\n parentContexts.onChildOutletCreated(this.name, <any>this);\n\n this.viewUtil = viewUtil;\n this.detachedLoaderFactory = resolver.resolveComponentFactory(DetachedLoader);\n }\n\n setActionBarVisibility(actionBarVisibility: string): void {\n switch (actionBarVisibility) {\n case 'always':\n case 'never':\n this.frame.actionBarVisibility = actionBarVisibility;\n return;\n\n default:\n this.frame.actionBarVisibility = 'auto';\n }\n }\n\n ngOnDestroy(): void {\n // In the event that the `parentContexts` has changed the outlet\n // via the creation of another outlet, the `onChildOutletDestroyed`\n // will be skipped\n if (this.parentContexts.getContext(this.name)?.outlet === <any>this) {\n // Clear accumulated modal view page cache when page-router-outlet\n // destroyed on modal view closing\n this.parentContexts.onChildOutletDestroyed(this.name);\n }\n\n if (this.outlet) {\n this.outlet.outletKeys.forEach((key) => {\n this.routeReuseStrategy.clearModalCache(key);\n });\n this.locationStrategy.clearOutlet(this.frame);\n } else {\n NativeScriptDebug.routerLog('PageRouterOutlet.ngOnDestroy: no outlet available for page-router-outlet');\n }\n\n if (this.isActivated) {\n const c = this.activated.instance;\n this.activated.hostView.detach();\n destroyComponentRef(this.activated);\n\n this.deactivateEvents.emit(c);\n this.activated = null;\n }\n }\n\n deactivate(): void {\n if (!this.outlet || !this.outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(\n 'Currently not in page back navigation - component should be detached instead of deactivated.',\n );\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('PageRouterOutlet.deactivate() while going back - should destroy');\n }\n\n if (!this.isActivated) {\n return;\n }\n this.postNavFunction?.();\n\n const c = this.activated.instance;\n destroyComponentRef(this.activated);\n\n this.activated = null;\n this._activatedRoute = null;\n\n this.deactivateEvents.emit(c);\n }\n\n /**\n * Called when the `RouteReuseStrategy` instructs to detach the subtree\n */\n detach(): ComponentRef<any> {\n if (!this.isActivated) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Outlet is not activated');\n }\n return;\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.detach() - ${routeToString(this._activatedRoute)}`);\n }\n\n this.postNavFunction?.();\n\n // Detach from ChangeDetection\n this.activated.hostView.detach();\n\n const component = this.activated;\n this.activated = null;\n this._activatedRoute = null;\n this.detachEvents.emit(component.instance);\n return component;\n }\n\n /**\n * Called when the `RouteReuseStrategy` instructs to re-attach a previously detached subtree\n */\n attach(ref: ComponentRef<any>, activatedRoute: ActivatedRoute) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.attach() - ${routeToString(activatedRoute)}`);\n }\n\n this.activated = ref;\n\n // reattach to ChangeDetection\n this.activated.hostView.markForCheck();\n this.activated.hostView.reattach();\n this._activatedRoute = activatedRoute;\n this.markActivatedRoute(activatedRoute);\n\n // we have a child with the same name, so we don't finish the back nav\n if (this.isFinalPageRouterOutlet()) {\n this.locationStrategy._finishBackPageNavigation(this.frame);\n }\n this.attachEvents.emit(ref.instance);\n }\n\n private isFinalPageRouterOutlet() {\n let children = this.parentContexts.getContext(this.name)?.children;\n while (children) {\n const childContext = children.getContext(this.name);\n if (!childContext || !childContext.outlet) {\n return true;\n }\n if (childContext.outlet instanceof PageRouterOutlet) {\n return false;\n }\n children = childContext.children;\n }\n return true;\n }\n\n /**\n * Called by the Router to instantiate a new component during the commit phase of a navigation.\n * This method in turn is responsible for calling the `routerOnActivate` hook of its child.\n */\n @profile\n activateWith(activatedRoute: ActivatedRoute, resolver: ComponentFactoryResolver | EnvironmentInjector | null): void {\n this.outlet = this.outlet || this.getOutlet(activatedRoute.snapshot);\n if (!this.outlet) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerError('No outlet found relative to activated route');\n }\n return;\n }\n\n this.outlet.isNSEmptyOutlet = this.isEmptyOutlet;\n this.locationStrategy.updateOutletFrame(this.outlet, this.frame, this.isEmptyOutlet);\n\n if (this.outlet && this.outlet.isPageNavigationBack) {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(\n 'Currently in page back navigation - component should be reattached instead of activated.',\n );\n }\n if (this.isFinalPageRouterOutlet()) {\n this.locationStrategy._finishBackPageNavigation(this.frame);\n }\n }\n\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(`PageRouterOutlet.activateWith() - ${routeToString(activatedRoute)}`);\n }\n\n this._activatedRoute = activatedRoute;\n\n this.markActivatedRoute(activatedRoute);\n\n this.activateOnGoForward(activatedRoute, resolver || this.environmentInjector);\n this.activateEvents.emit(this.activated.instance);\n }\n\n private activateOnGoForward(\n activatedRoute: ActivatedRoute,\n resolverOrInjector: ComponentFactoryResolver | EnvironmentInjector,\n ): void {\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog(\n 'PageRouterOutlet.activate() forward navigation - ' + 'create detached loader in the loader container',\n );\n }\n\n const component = this.getComponentType(activatedRoute);\n const page = this.pageFactory({\n isNavigation: true,\n componentType: component,\n });\n const location = this.location;\n\n const destructibles = new Set([PageService]);\n const parentInjector = Injector.create({\n providers: [\n { provide: Page, useValue: page },\n { provide: Frame, useValue: this.frame },\n { provide: PageRoute, useValue: new PageRoute(activatedRoute) },\n { provide: ActivatedRoute, useValue: activatedRoute },\n { provide: ChildrenOutletContexts, useValue: this.parentContexts.getOrCreateContext(this.name).children },\n { provide: PageService, useClass: PageService },\n ],\n parent: location.injector,\n });\n\n const injector = new DestructibleInjector(destructibles, parentInjector);\n let loaderRef: ComponentRef<DetachedLoader>;\n if (isComponentFactoryResolver(resolverOrInjector)) {\n loaderRef = createComponent(DetachedLoader, {\n environmentInjector: this.environmentInjector,\n elementInjector: injector,\n });\n } else {\n const environmentInjector = resolverOrInjector;\n loaderRef = location.createComponent(DetachedLoader, { index: location.length, injector, environmentInjector });\n }\n loaderRef.onDestroy(() => injector.destroy());\n this.changeDetector.markForCheck();\n\n this.activated = loaderRef.instance.loadComponentInLocation(component);\n this.activated.changeDetectorRef.detectChanges();\n this.loadComponentInPage(page, this.activated, { activatedRoute });\n\n this.activated[loaderRefSymbol] = loaderRef;\n }\n\n @profile\n private loadComponentInPage(page: Page, componentRef: ComponentRef<any>, navigationContext): void {\n // Component loaded. Find its root native view.\n const componentView = componentRef.location.nativeElement;\n // Remove it from original native parent.\n this.viewUtil.removeChild(componentView.parent, componentView);\n // Add it to the new page\n this.viewUtil.appendChild(page, componentView);\n\n let topActivatedRoute = findTopActivatedRouteNodeForOutlet(this._activatedRoute.snapshot);\n let outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n const thisRouteKey = outletKey;\n while (!this.locationStrategy.findOutlet(outletKey)) {\n topActivatedRoute = topActivatedRoute.parent;\n if (!topActivatedRoute) {\n NativeScriptDebug.routerError('Could not find outlet for route: ' + thisRouteKey);\n break;\n }\n outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n }\n const navigatedFromCallback = zoneWrap((args: NavigatedData) => {\n if (args.isBackNavigation) {\n this.locationStrategy._beginBackPageNavigation(this.frame, outletKey);\n this.locationStrategy.back(null, this.frame);\n }\n });\n // TODO: experiment with using NgZone instead of global above\n // const navigatedFromCallback = (args: NavigatedData) => {\n // \tif (args.isBackNavigation) {\n // this.ngZone.run(() => {\n // this.locationStrategy._beginBackPageNavigation(this.frame);\n // this.locationStrategy.back(null, this.frame);\n // });\n // \t}\n // };\n\n page.on(Page.navigatedFromEvent, navigatedFromCallback);\n componentRef.onDestroy(() => {\n if (page) {\n page.off(Page.navigatedFromEvent, navigatedFromCallback);\n page = null;\n }\n });\n\n const navOptions = {\n ...defaultNavOptions,\n ...(this.router.getCurrentNavigation().extras || {}),\n } as ExtendedNavigationExtras;\n this.locationStrategy._beginPageNavigation(this.frame, navOptions);\n const isReplace = navOptions.replaceUrl && !navOptions.clearHistory;\n\n const currentRoute = this.activatedRoute;\n // Clear refCache if navigation with clearHistory\n if (navOptions.clearHistory) {\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.markCacheForClear(key));\n const wipeCache = callableOnce(() => {\n if (this.postNavFunction === wipeCache) {\n this.postNavFunction = null;\n }\n if (this.outlet && this.activatedRoute === currentRoute) {\n // potential alternative fix (only fix children of the current outlet)\n // const nests = outletKey.split('/');\n // this.outlet.outletKeys.filter((k) => k.split('/').length >= nests.length).forEach((key) => this.routeReuseStrategy.clearCache(key));\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.clearMarkedCache(key));\n }\n });\n this.postNavFunction = wipeCache;\n const clearCallback = () =>\n setTimeout(() => {\n wipeCache();\n });\n\n page.once(Page.navigatedToEvent, clearCallback);\n } else if (navOptions.replaceUrl) {\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.markCacheForPop(key));\n const popCache = callableOnce(() => {\n if (this.postNavFunction === popCache) {\n this.postNavFunction = null;\n }\n if (this.outlet && this.activatedRoute === currentRoute) {\n // potential alternative fix (only fix children of the current outlet)\n // const nests = outletKey.split('/');\n // this.outlet.outletKeys.filter((k) => k.split('/').length >= nests.length).forEach((key) => this.routeReuseStrategy.popCache(key));\n this.outlet.outletKeys.forEach((key) => this.routeReuseStrategy.clearMarkedCache(key));\n }\n });\n this.postNavFunction = popCache;\n const clearCallback = () =>\n setTimeout(() => {\n popCache();\n });\n\n page.once(Page.navigatedToEvent, clearCallback);\n }\n\n const navigationEntry: NavigationEntry = {\n create() {\n return page;\n },\n context: navigationContext,\n clearHistory: navOptions.clearHistory,\n animated: navOptions.animated,\n transition: navOptions.transition,\n };\n\n if (isReplace && this.frame.currentPage) {\n this.frame.replacePage(navigationEntry);\n } else {\n this.frame.navigate(navigationEntry);\n }\n }\n\n // Find and mark the top activated route as an activated one.\n // In ns-location-strategy we are reusing components only if their corresponing routes\n // are marked as activated from this method.\n private markActivatedRoute(activatedRoute: ActivatedRoute) {\n const queue = [];\n queue.push(activatedRoute.snapshot);\n let currentRoute = queue.shift();\n\n while (currentRoute) {\n currentRoute.children.forEach((childRoute) => {\n queue.push(childRoute);\n });\n\n const topActivatedRoute = findTopActivatedRouteNodeForOutlet(currentRoute);\n const outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n const outlet = this.locationStrategy.findOutlet(outletKey, topActivatedRoute);\n\n if (outlet && outlet.frames.length) {\n topActivatedRoute[pageRouterActivatedSymbol] = true;\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('Activated route marked as page: ' + routeToString(topActivatedRoute));\n }\n }\n\n currentRoute = queue.shift();\n }\n }\n\n private getComponentType(activatedRoute: ActivatedRoute): Type<any> {\n return activatedRoute.routeConfig.component || activatedRoute.component;\n }\n\n private getOutlet(activatedRouteSnapshot: ActivatedRouteSnapshot): Outlet {\n const topActivatedRoute = findTopActivatedRouteNodeForOutlet(activatedRouteSnapshot);\n const outletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute);\n let outlet = this.locationStrategy.findOutlet(outletKey, topActivatedRoute);\n\n // Named lazy loaded outlet.\n if (!outlet && this.isEmptyOutlet) {\n const parentOutletKey = this.locationStrategy.getRouteFullPath(topActivatedRoute.parent);\n outlet = this.locationStrategy.findOutlet(parentOutletKey, topActivatedRoute.parent);\n\n if (outlet) {\n outlet.outletKeys.push(outletKey);\n }\n }\n\n return outlet;\n }\n}\n","import { NSLocationStrategy } from './ns-location-strategy';\nimport { PlatformLocation, LocationChangeListener } from '@angular/common';\nimport { Injectable } from '@angular/core';\nimport { NativeScriptDebug } from '../../trace';\n\n@Injectable()\nexport class NativescriptPlatformLocation extends PlatformLocation {\n readonly hostname: string;\n readonly href: string;\n readonly port: string;\n readonly protocol: string;\n\n constructor(private locationStrategy: NSLocationStrategy) {\n super();\n if (NativeScriptDebug.isLogEnabled()) {\n NativeScriptDebug.routerLog('NativescriptPlatformLocation.constructor()');\n }\n }\n\n getState(): any {\n return undefined;\n }\n\n getBaseHrefFromDOM(): string {\n return '/';\n }\n\n onPopState(fn: LocationChangeListener): VoidFunction {\n this.locationStrategy.onPopState(fn);\n return () => {\n //\n };\n }\n\n onHashChange(_fn: LocationChangeListener): VoidFunction {\n return () => {\n //\n };\n }\n\n get search(): string {\n return '';\n }\n get hash(): string {\n return '';\n }\n get pathname(): string {\n return this.locationStrategy.path();\n }\n set pathname(_newPath: string) {\n throw new Error('NativescriptPlatformLocation set pathname - not implemented');\n }\n\n pushState(state: any, title: string, url: string): void {\n this.locationStrategy.pushState(state, title, url, null);\n }\n\n replaceState(state: any, title: string, url: string): void {\n this.locationStrategy.replaceState(state, title, url, null);\n }\n\n forward(): void {\n throw new Error('NativescriptPlatformLocation.forward() - not implemented');\n }\n\n back(): void {\n this.locationStrategy.back();\n }\n}\n","import { Component, ViewChild } from '@angular/core';\nimport { Page } from '@nativescript/core';\nimport { PageRouterOutlet } from './page-router-outlet';\n\n@Component({\n // tslint:disable-next-line:component-selector\n selector: 'ns-empty-outlet',\n template: \"<page-router-outlet isEmptyOutlet='true'></page-router-outlet>\",\n imports: [PageRouterOutlet],\n})\nexport class NSEmptyOutletComponent {\n @ViewChild(PageRouterOutlet, { read: PageRouterOutlet, static: false }) pageRouterOutlet: PageRouterOutlet;\n constructor(private page: Page) {\n if (this.page) {\n this.page.actionBarHidden = true;\n\n this.page.on('loaded', () => {\n if (this.pageRouterOutlet && this.page.frame) {\n this.pageRouterOutlet.setActionBarVisibility(this.page.frame.actionBarVisibility);\n }\n });\n }\n }\n}\n","import {\n NgModule,\n ModuleWithProviders,\n NO_ERRORS_SCHEMA,\n Optional,\n SkipSelf,\n makeEnvironmentProviders,\n} from '@angular/core';\nimport {\n RouterModule,\n Routes,\n ExtraOptions,\n RouteReuseStrategy,\n RouterFeatures,\n ActivatedRoute,\n Router,\n ROUTES,\n provideRouter,\n} from '@angular/router';\nimport { LocationStrategy, PlatformLocation } from '@angular/common';\nimport { NSRouterLink } from './ns-router-link';\nimport { NSRouterLinkActive } from './ns-router-link-active';\nimport { PageRouterOutlet } from './page-router-outlet';\nimport { NSLocationStrategy } from './ns-location-strategy';\nimport { NativescriptPlatformLocation } from './ns-platform-location';\nimport { NSRouteReuseStrategy } from './ns-route-reuse-strategy';\nimport { RouterExtensions } from './router-extensions';\nimport { FrameService } from '../frame.service';\nimport { NSEmptyOutletComponent } from './ns-empty-outlet.component';\nimport { NativeScriptCommonModule } from '../../nativescript-common.module';\nimport { START_PATH } from '../../tokens';\n\nexport { PageRoute } from './page-router-outlet';\nexport { RouterExtensions } from './router-extensions';\nexport { Outlet, NavigationOptions, LocationState, defaultNavOptions } from './ns-location-utils';\nexport { NSRouterLink } from './ns-router-link';\nexport { NSRouterLinkActive } from './ns-router-link-active';\nexport { PageRouterOutlet } from './page-router-outlet';\nexport { NSLocationStrategy } from './ns-location-strategy';\nexport { NSEmptyOutletComponent } from './ns-empty-outlet.component';\n\nexport function provideLocationStrategy(\n locationStrategy: NSLocationStrategy,\n frameService: FrameService,\n startPath: string,\n): NSLocationStrategy {\n return locationStrategy ? locationStrategy : new NSLocationStrategy(frameService, startPath);\n}\n\nconst ROUTER_COMPONENTS = [NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent];\n\n@NgModule({\n imports: [RouterModule, NativeScriptCommonModule, ...ROUTER_COMPONENTS],\n exports: [RouterModule, ...ROUTER_COMPONENTS],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class NativeScriptRouterModule {\n static forRoot(routes: Routes, config?: ExtraOptions): ModuleWithProviders<NativeScriptRouterModule> {\n return {\n ngModule: NativeScriptRouterModule,\n providers: [\n ...RouterModule.forRoot(routes, config).providers,\n {\n provide: NSLocationStrategy,\n useFactory: provideLocationStrategy,\n deps: [[NSLocationStrategy, new Optional(), new SkipSelf()], FrameService, [new Optional(), START_PATH]],\n },\n { provide: LocationStrategy, useExisting: NSLocationStrategy },\n NativescriptPlatformLocation,\n { provide: PlatformLocation, useExisting: NativescriptPlatformLocation },\n RouterExtensions,\n NSRouteReuseStrategy,\n { provide: RouteReuseStrategy, useExisting: NSRouteReuseStrategy },\n ],\n };\n }\n\n static forChild(routes: Routes): ModuleWithProviders<NativeScriptRouterModule> {\n return { ngModule: NativeScriptRouterModule, providers: RouterModule.forChild(routes).providers };\n }\n}\nexport function rootRoute(router: Router): ActivatedRoute {\n return router.routerState.root;\n}\n\nexport function provideNativeScriptRouter(routes: Routes, ...features: RouterFeatures[]) {\n return makeEnvironmentProviders([\n provideRouter(routes, ...features),\n {\n provide: NSLocationStrategy,\n useFactory: provideLocationStrategy,\n deps: [[NSLocationStrategy, new Optional(), new SkipSelf()], FrameService, [new Optional(), START_PATH]],\n },\n { provide: LocationStrategy, useExisting: NSLocationStrategy },\n NativescriptPlatformLocation,\n { provide: PlatformLocation, useExisting: NativescriptPlatformLocation },\n RouterExtensions,\n NSRouteReuseStrategy,\n { provide: RouteReuseStrategy, useExisting: NSRouteReuseStrategy },\n // {provide: APP_BOOTSTRAP_LISTENER, multi: true, useFactory: getBootstrapListener},\n ]);\n}\n","/* eslint-disable @typescript-eslint/no-unsafe-function-type */\n/* eslint-disable @typescript-eslint/no-empty-function */\n/* eslint-disable @typescript-eslint/no-explicit-any */\n/* eslint-disable @typescript-eslint/triple-slash-reference */\n/// <reference path=\"../../../../node_modules/zone.js/zone.d.ts\" />\n/// <reference path=\"../../../../node_modules/@nativescript/core/global-types.d.ts\" />\n/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.io/license\n */\n\nimport { EventEmitter, isDevMode, NgZone, NgZoneOptions, ɵinternalProvideZoneChangeDetection } from '@angular/core';\nimport { Utils } from '@nativescript/core';\n\nlet currentRafId = 1;\nfunction noop() {}\n\n/**\n * An injectable service for executing work inside or outside of the Angular zone.\n *\n * The most common use of this service is to optimize performance when starting a work consisting of\n * one or more asynchronous tasks that don't require UI updates or error handling to be handled by\n * Angular. Such tasks can be kicked off via {@link #runOutsideAngular} and if needed, these tasks\n * can reenter the Angular zone via {@link #run}.\n *\n * <!-- TODO: add/fix links to:\n * - docs explaining zones and the use of zones in Angular and change-detection\n * - link to runOutsideAngular/run (throughout this file!)\n * -->\n *\n * @usageNotes\n * ### Example\n *\n * ```\n * import {Component, NgZone} from '@angular/core';\n * import {NgIf} from '@angular/common';\n *\n * @Component({\n * selector: 'ng-zone-demo',\n * template: `\n * <h2>Demo: NgZone</h2>\n *\n * <p>Progress: {{progress}}%</p>\n * <p *ngIf=\"progress >= 100\">Done processing {{label}} of Angular zone!</p>\n *\n * <button (click)=\"processWithinAngularZone()\">Process within Angular zone</button>\n * <button (click)=\"processOutsideOfAngularZone()\">Process outside of Angular zone</button>\n * `,\n * })\n * export class NgZoneDemo {\n * progress: number = 0;\n * label: string;\n *\n * constructor(private _ngZone: NgZone) {}\n *\n * // Loop inside the Angular zone\n * // so the UI DOES refresh after each setTimeout cycle\n * processWithinAngularZone() {\n * this.label = 'inside';\n * this.progress = 0;\n * this._increaseProgress(() => console.log('Inside Done!'));\n * }\n *\n * // Loop outside of the Angular zone\n * // so the UI DOES NOT refresh after each setTimeout cycle\n * processOutsideOfAngularZone() {\n * this.label = 'outside';\n * this.progress = 0;\n * this._ngZone.runOutsideAngular(() => {\n * this._increaseProgress(() => {\n * // reenter the Angular zone and display done\n * this._ngZone.run(() => { console.log('Outside Done!'); });\n * });\n * });\n * }\n *\n * _increaseProgress(doneCallback: () => void) {\n * this.progress += 1;\n * console.log(`Current progress: ${this.progress}%`);\n *\n * if (this.progress < 100) {\n * window.setTimeout(() => this._increaseProgress(doneCallback), 10);\n * } else {\n * doneCallback();\n * }\n * }\n * }\n * ```\n *\n * @publicApi\n */\nexport class NativeScriptNgZone implements NgZone {\n readonly hasPendingMacrotasks: boolean = false;\n readonly hasPendingMicrotasks: boolean = false;\n\n /**\n * Whether there are no outstanding microtasks or macrotasks.\n */\n readonly isStable: boolean = true;\n\n /**\n * Notifies when code enters Angular Zone. This gets fired first on VM Turn.\n */\n readonly onUnstable: EventEmitter<any> = new EventEmitter(false);\n\n /**\n * Notifies when there is no more microtasks enqueued in the current VM Turn.\n * This is a hint for Angular to do change detection, which may enqueue more microtasks.\n * For this reason this event can fire multiple times per VM Turn.\n */\n readonly onMicrotaskEmpty: EventEmitter<any> = new EventEmitter(false);\n\n /**\n * Notifies when the last `onMicrotaskEmpty` has run and there are no more microtasks, which\n * implies we are about to relinquish VM turn.\n * This event gets called just once.\n */\n readonly onStable: EventEmitter<any> = new EventEmitter(false);\n\n /**\n * Notifies that an error has been delivered.\n */\n readonly onError: EventEmitter<any> = new EventEmitter(false);\n\n constructor({\n enableLongStackTrace = isDevMode(),\n shouldCoalesceEventChangeDetection = true,\n shouldCoalesceRunChangeDetection = true,\n } = {}) {\n if (typeof Zone == 'undefined') {\n throw new Error(`In this configuration Angular requires Zone.js`);\n }\n\n Zone.assertZonePatched();\n const self = this as any as NgZonePrivate;\n self._nesting = 0;\n\n self._outer = self._inner = Zone.current;\n\n if ((Zone as any)['TaskTrackingZoneSpec']) {\n self._inner = self._inner.fork(new ((Zone as any)['TaskTrackingZoneSpec'] as any)());\n }\n\n if (enableLongStackTrace && (Zone as any)['longStackTraceZoneSpec']) {\n self._inner = self._inner.fork((Zone as any)['longStackTraceZoneSpec']);\n }\n // if shouldCoalesceRunChangeDetection is true, all tasks including event tasks will be\n // coalesced, so shouldCoalesceEventChangeDetection option is not necessary and can be skipped.\n self.shouldCoalesceEventChangeDetection = !shouldCoalesceRunChangeDetection && shouldCoalesceEventChangeDetection;\n self.shouldCoalesceRunChangeDetection = shouldCoalesceRunChangeDetection;\n self.lastRequestAnimationFrameId = -1;\n self.nativeRequestAnimationFrame = function (cb) {\n const nativeDispatchToMainThread = Utils[Zone.__symbol__('dispatchToMainThread')] || Utils.dispatchToMainThread;\n nativeDispatchToMainThread(cb);\n return currentRafId++;\n };\n forkInnerZoneWithAngularBehavior(self);\n }\n\n static isInAngularZone(): boolean {\n return Zone.current.get('isAngularZone') === true;\n }\n\n static assertInAngularZone(): void {\n if (!NgZone.isInAngularZone()) {\n throw new Error('Expected to be in Angular Zone, but it is not!');\n }\n }\n\n static assertNotInAngularZone(): void {\n if (NgZone.isInAngularZone()) {\n throw new Error('Expected to not be in Angular Zone, but it is!');\n }\n }\n\n /**\n * Executes the `fn` function synchronously within the Angular zone and returns value returned by\n * the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n run<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n return (this as any as NgZonePrivate)._inner.run(fn, applyThis, applyArgs);\n }\n\n /**\n * Executes the `fn` function synchronously within the Angular zone as a task and returns value\n * returned by the function.\n *\n * Running functions via `run` allows you to reenter Angular zone from a task that was executed\n * outside of the Angular zone (typically started via {@link #runOutsideAngular}).\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * within the Angular zone.\n *\n * If a synchronous error happens it will be rethrown and not reported via `onError`.\n */\n runTask<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[], name?: string): T {\n const zone = (this as any as NgZonePrivate)._inner;\n const task = zone.scheduleEventTask('NgZoneEvent: ' + name, fn, EMPTY_PAYLOAD, noop, noop);\n try {\n return zone.runTask(task, applyThis, applyArgs);\n } finally {\n zone.cancelTask(task);\n }\n }\n\n /**\n * Same as `run`, except that synchronous errors are caught and forwarded via `onError` and not\n * rethrown.\n */\n runGuarded<T>(fn: (...args: any[]) => T, applyThis?: any, applyArgs?: any[]): T {\n return (this as any as NgZonePrivate)._inner.runGuarded(fn, applyThis, applyArgs);\n }\n\n /**\n * Executes the `fn` function synchronously in Angular's parent zone and returns value returned by\n * the function.\n *\n * Running functions via {@link #runOutsideAngular} allows you to escape Angular's zone and do\n * work that\n * doesn't trigger Angular change-detection or is subject to Angular's error handling.\n *\n * Any future tasks or microtasks scheduled from within this function will continue executing from\n * outside of the Angular zone.\n *\n * Use {@link #run} to reenter the Angular zone and do work that updates the application model.\n */\n runOutsideAngular<T>(fn: (...args: any[]) => T): T {\n return (this as any as NgZonePrivate)._outer.run(fn);\n }\n}\n\nconst EMPTY_PAYLOAD = {};\n\ninterface NgZonePrivate extends NgZone {\n _outer: Zone;\n _inner: Zone;\n _nesting: number;\n _hasPendingMicrotasks: boolean;\n\n hasPendingMacrotasks: boolean;\n hasPendingMicrotasks: boolean;\n lastRequestAnimationFrameId: number;\n /**\n * A flag to indicate if NgZone is currently inside\n * checkStable and to prevent re-entry. The flag is\n * needed because it is possible to invoke the change\n * detection from within change detection leading to\n * incorrect behavior.\n *\n * For detail, please refer here,\n * https://github.com/angular/angular/pull/40540\n */\n isCheckStableRunning: boolean;\n isStable: boolean;\n /**\n * Optionally specify coalescing event change detections or not.\n * Consider the following case.\n *\n * <div (click)=\"doSomething()\">\n * <button (click)=\"doSomethingElse()\"></button>\n * </div>\n *\n * When button is clicked, because of the event bubbling, both\n * event handlers will be called and 2 change detections will be\n * triggered. We can coalesce such kind of events to trigger\n * change detection only once.\n *\n * By default, this option will be false. So the events will not be\n * coalesced and the change detection will be triggered multiple times.\n * And if this option be set to true, the change detection will be\n * triggered async by scheduling it in an animation frame. So in the case above,\n * the change detection will only be trigged once.\n */\n shouldCoalesceEventChangeDetection: boolean;\n /**\n * Optionally specify if `NgZone#run()` method invocations should be coalesced\n * into a single change detection.\n *\n * Consider the following case.\n *\n * for (let i = 0; i < 10; i ++) {\n * ngZone.run(() => {\n * // do something\n * });\n * }\n *\n * This case triggers the change detection multiple times.\n * With ngZoneRunCoalescing options, all change detections in an event loops trigger only once.\n * In addition, the change detection executes in requestAnimation.\n *\n */\n shouldCoalesceRunChangeDetection: boolean;\n\n nativeRequestAnimationFrame: (callback: FrameRequestCallback) => number;\n\n // Cache a \"fake\" top eventTask so you don't need to schedule a new task every\n // time you run a `checkStable`.\n fakeTopEventTask: Task;\n}\n\nfunction checkStable(zone: NgZonePrivate) {\n // TODO: @JiaLiPassion, should check zone.isCheckStableRunning to prevent\n // re-entry. The case is:\n //\n // @Component({...})\n // export class AppComponent {\n // constructor(private ngZone: NgZone) {\n // this.ngZone.onStable.subscribe(() => {\n // this.ngZone.run(() => console.log('stable'););\n // });\n // }\n //\n // The onStable subscriber run another function inside ngZone\n // which causes `checkStable()` re-entry.\n // But this fix causes some issues in g3, so this fix will be\n // launched in another PR.\n if (zone._nesting == 0 && !zone.hasPendingMicrotasks && !zone.isStable) {\n try {\n zone._nesting++;\n zone.onMicrotaskEmpty.emit(null);\n } finally {\n zone._nesting--;\n if (!zone.hasPendingMicrotasks) {\n try {\n zone.runOutsideAngular(() => zone.onStable.emit(null));\n } finally {\n zone.isStable = true;\n }\n }\n }\n }\n}\n\nfunction delayChangeDetectionForEvents(zone: NgZonePrivate) {\n /**\n * We also need to check _nesting here\n * Consider the following case with shouldCoalesceRunChangeDetection = true\n *\n * ngZone.run(() => {});\n * ngZone.run(() => {});\n *\n * We want the two `ngZone.run()` only trigger one change detection\n * when shouldCoalesceRunChangeDetection is true.\n * And because in this case, change detection run in async way(requestAnimationFrame),\n * so we also need to check the _nesting here to prevent multiple\n * change detections.\n */\n if (zone.isCheckStableRunning || zone.lastRequestAnimationFrameId !== -1) {\n return;\n }\n zone.lastRequestAnimationFrameId = zone.nativeRequestAnimationFrame.call(global, () => {\n // This is a work around for https://github.com/angular/angular/issues/36839.\n // The core issue is that when event coalescing is enabled it is possible for microtasks\n // to get flushed too early (As is the case with `Promise.then`) between the\n // coalescing eventTasks.\n //\n // To workaround this we schedule a \"fake\" eventTask before we process the\n // coalescing eventTasks. The benefit of this is that the \"fake\" container eventTask\n // will prevent the microtasks queue from getting drained in between the coalescing\n // eventTask execution.\n if (!zone.fakeTopEventTask) {\n zone.fakeTopEventTask = Zone.root.scheduleEventTask(\n 'fakeTopEventTask',\n () => {\n zone.lastRequestAnimationFrameId = -1;\n updateMicroTaskStatus(zone);\n zone.isCheckStableRunning = true;\n checkStable(zone);\n zone.isCheckStableRunning = false;\n },\n undefined,\n () => {},\n () => {},\n );\n }\n zone.fakeTopEventTask.invoke();\n });\n updateMicroTaskStatus(zone);\n}\n\nfunction forkInnerZoneWithAngularBehavior(zone: NgZonePrivate) {\n const delayChangeDetectionForEventsDelegate = () => {\n delayChangeDetectionForEvents(zone);\n };\n zone._inner = zone._inner.fork({\n name: 'angular',\n properties: <any>{ isAngularZone: true },\n onInvokeTask: (\n delegate: ZoneDelegate,\n current: Zone,\n target: Zone,\n task: Task,\n applyThis: any,\n applyArgs: any,\n ): any => {\n try {\n onEnter(zone);\n return delegate.invokeTask(target, task, applyThis, applyArgs);\n } finally {\n if (\n (zone.shouldCoalesceEventChangeDetection && task.type === 'eventTask') ||\n zone.shouldCoalesceRunChangeDetection ||\n !Utils.isMainThread()\n ) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n\n onInvoke: (\n delegate: ZoneDelegate,\n current: Zone,\n target: Zone,\n callback: Function,\n applyThis: any,\n applyArgs?: any[],\n source?: string,\n ): any => {\n try {\n onEnter(zone);\n return delegate.invoke(target, callback, applyThis, applyArgs, source);\n } finally {\n if (zone.shouldCoalesceRunChangeDetection || !Utils.isMainThread()) {\n delayChangeDetectionForEventsDelegate();\n }\n onLeave(zone);\n }\n },\n\n onHasTask: (delegate: ZoneDelegate, current: Zone, target: Zone, hasTaskState: HasTaskState) => {\n delegate.hasTask(target, hasTaskState);\n if (current === target) {\n // We are only interested in hasTask events which originate from our zone\n // (A child hasTask event is not interesting to us)\n if (hasTaskState.change == 'microTask') {\n zone._hasPendingMicrotasks = hasTaskState.microTask;\n updateMicroTaskStatus(zone);\n checkStable(zone);\n } else if (hasTaskState.change == 'macroTask') {\n zone.hasPendingMacrotasks = hasTaskState.macroTask;\n }\n }\n },\n\n onHandleError: (delegate: ZoneDelegate, current: Zone, target: Zone, error: any): boolean => {\n delegate.handleError(target, error);\n zone.runOutsideAngular(() => zone.onError.emit(error));\n return false;\n },\n });\n}\n\nfunction updateMicroTaskStatus(zone: NgZonePrivate) {\n if (zone._hasPendingMicrotasks || zone.lastRequestAnimationFrameId !== -1) {\n zone.hasPendingMicrotasks = true;\n } else {\n zone.hasPendingMicrotasks = false;\n }\n}\n\nfunction onEnter(zone: NgZonePrivate) {\n zone._nesting++;\n if (zone.isStable) {\n zone.isStable = false;\n zone.onUnstable.emit(null);\n }\n}\n\nfunction onLeave(zone: NgZonePrivate) {\n zone._nesting--;\n checkStable(zone);\n}\n\nfunction getNgZoneOptions(options?: NgZoneOptions) {\n return {\n enableLongStackTrace: typeof ngDevMode === 'undefined' ? false : !!ngDevMode,\n shouldCoalesceEventChangeDetection: options?.eventCoalescing ?? true,\n shouldCoalesceRunChangeDetection: options?.runCoalescing ?? true,\n };\n}\n\nexport function provideNativeScriptNgZone(options?: NgZoneOptions) {\n const scheduleInRootZone = (options as any)?.scheduleInRootZone;\n return ɵinternalProvideZoneChangeDetection({\n ngZoneFactory: () => new NativeScriptNgZone(getNgZoneOptions(options)),\n scheduleInRootZone,\n });\n}\n","// eslint-disable-next-line @typescript-eslint/triple-slash-reference\n/// <reference path=\"../references.d.ts\" />\nexport * from './lib/public_api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.NSLocationStrategy","INJECTOR_SCOPE","NullViewportScroller","ɵinternalCreateApplication","AnimationEngine","i1","AnimationRendererFactory","WebAnimationsStyleNormalizer","BrowserAnimationBuilder","AnimationStyleNormalizer","Observable","i2.NSFileSystem","i2.NSLocationStrategy","i3.FrameService","i2.RouterExtensions","ɵinternalProvideZoneChangeDetection"],"mappings":"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"}
|