diff --git a/packages/angular/src/lib/cdk/action-bar/index.ts b/packages/angular/src/lib/cdk/action-bar/index.ts index daa3194..01e6c7e 100644 --- a/packages/angular/src/lib/cdk/action-bar/index.ts +++ b/packages/angular/src/lib/cdk/action-bar/index.ts @@ -78,6 +78,7 @@ const appendActionItem = (bar: NgActionBar, item: ActionItem) => { @Component({ selector: 'ActionBar', template: '', + standalone: true, }) export class ActionBarComponent { constructor(public element: ElementRef, @Optional() private page: Page) { @@ -96,6 +97,7 @@ export class ActionBarComponent { @Component({ selector: 'ActionBarExtension', template: '', + standalone: true, }) // eslint-disable-next-line @angular-eslint/component-class-suffix export class ActionBarScope { @@ -130,6 +132,7 @@ export class ActionBarScope { @Directive({ selector: 'ActionItem', // tslint:disable-line:directive-selector + standalone: true, }) export class ActionItemDirective implements OnDestroy { constructor(public element: ElementRef, @Optional() private ownerScope: ActionBarScope) { @@ -147,6 +150,7 @@ export class ActionItemDirective implements OnDestroy { @Directive({ selector: 'NavigationButton', // tslint:disable-line:directive-selector + standalone: true, }) export class NavigationButtonDirective implements OnDestroy { constructor(public element: ElementRef, @Optional() private ownerScope: ActionBarScope) { diff --git a/packages/angular/src/lib/cdk/detached-loader.ts b/packages/angular/src/lib/cdk/detached-loader.ts index 5574da5..681e7e7 100644 --- a/packages/angular/src/lib/cdk/detached-loader.ts +++ b/packages/angular/src/lib/cdk/detached-loader.ts @@ -1,8 +1,8 @@ -import { ComponentRef, ComponentFactory, ViewContainerRef, Component, Type, ComponentFactoryResolver, ChangeDetectorRef, ApplicationRef, OnDestroy, TemplateRef, ViewChild, Injector } from '@angular/core'; +import { ApplicationRef, ChangeDetectorRef, Component, ComponentFactory, ComponentFactoryResolver, ComponentRef, Injector, NO_ERRORS_SCHEMA, OnDestroy, TemplateRef, Type, ViewChild, ViewContainerRef } from '@angular/core'; import { ProxyViewContainer, Trace } from '@nativescript/core'; -import { ComponentPortal, TemplatePortal } from './portal'; -import type { ComponentType } from '../utils/general'; import { registerElement } from '../element-registry'; +import type { ComponentType } from '../utils/general'; +import { ComponentPortal, TemplatePortal } from './portal'; registerElement('DetachedContainer', () => ProxyViewContainer, { skipAddToDom: true, @@ -19,6 +19,8 @@ registerElement('DetachedContainer', () => ProxyViewContainer, { template: ` `, + standalone: true, + schemas: [NO_ERRORS_SCHEMA], }) // eslint-disable-next-line @angular-eslint/component-class-suffix export class DetachedLoader implements OnDestroy { diff --git a/packages/angular/src/lib/cdk/dialog/dialog-content-directives.ts b/packages/angular/src/lib/cdk/dialog/dialog-content-directives.ts index 4279306..ef694f9 100644 --- a/packages/angular/src/lib/cdk/dialog/dialog-content-directives.ts +++ b/packages/angular/src/lib/cdk/dialog/dialog-content-directives.ts @@ -18,6 +18,7 @@ import { NativeDialogRef } from './dialog-ref'; // eslint-disable-next-line @angular-eslint/directive-selector selector: '[native-dialog-close], [nativeDialogClose]', exportAs: 'nativeDialogClose', + standalone: true, }) export class NativeDialogCloseDirective implements OnInit, OnChanges { /** Dialog close input. */ diff --git a/packages/angular/src/lib/cdk/dialog/dialog-module.ts b/packages/angular/src/lib/cdk/dialog/dialog-module.ts index dc22711..666084e 100644 --- a/packages/angular/src/lib/cdk/dialog/dialog-module.ts +++ b/packages/angular/src/lib/cdk/dialog/dialog-module.ts @@ -3,7 +3,7 @@ import { NativeDialogCloseDirective } from './dialog-content-directives'; import { NativeDialogService } from './dialog-services'; @NgModule({ - declarations: [NativeDialogCloseDirective], + imports: [NativeDialogCloseDirective], exports: [NativeDialogCloseDirective], providers: [NativeDialogService], }) diff --git a/packages/angular/src/lib/cdk/frame-page/frame-page.component.ts b/packages/angular/src/lib/cdk/frame-page/frame-page.component.ts index 1743979..487211c 100644 --- a/packages/angular/src/lib/cdk/frame-page/frame-page.component.ts +++ b/packages/angular/src/lib/cdk/frame-page/frame-page.component.ts @@ -24,6 +24,7 @@ registerElement('FramePage', () => Frame, { // eslint-disable-next-line @angular-eslint/component-selector selector: 'FramePage', template: ``, + standalone: true, providers: [ { provide: Frame, diff --git a/packages/angular/src/lib/cdk/frame-page/frame-page.module.ts b/packages/angular/src/lib/cdk/frame-page/frame-page.module.ts index d8a3e49..8ac5411 100644 --- a/packages/angular/src/lib/cdk/frame-page/frame-page.module.ts +++ b/packages/angular/src/lib/cdk/frame-page/frame-page.module.ts @@ -4,7 +4,7 @@ import { FrameDirective } from './frame.directive'; import { PageDirective } from './page.directive'; @NgModule({ - declarations: [FrameDirective, PageDirective, FramePageComponent], + imports: [FrameDirective, PageDirective, FramePageComponent], exports: [FrameDirective, PageDirective, FramePageComponent], }) export class FramePageModule {} diff --git a/packages/angular/src/lib/cdk/frame-page/frame.directive.ts b/packages/angular/src/lib/cdk/frame-page/frame.directive.ts index 57d7106..7bc214e 100644 --- a/packages/angular/src/lib/cdk/frame-page/frame.directive.ts +++ b/packages/angular/src/lib/cdk/frame-page/frame.directive.ts @@ -8,6 +8,7 @@ export function customFrameDirectiveFactory(v: FrameDirective) { @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector selector: 'Frame', + standalone: true, providers: [ { provide: Frame, diff --git a/packages/angular/src/lib/cdk/frame-page/page.directive.ts b/packages/angular/src/lib/cdk/frame-page/page.directive.ts index 37142ed..919bac5 100644 --- a/packages/angular/src/lib/cdk/frame-page/page.directive.ts +++ b/packages/angular/src/lib/cdk/frame-page/page.directive.ts @@ -9,6 +9,7 @@ export function customPageFactory(v: PageDirective) { @Directive({ // eslint-disable-next-line @angular-eslint/directive-selector selector: 'Page', + standalone: true, providers: [ { provide: Page, diff --git a/packages/angular/src/lib/cdk/list-view/list-view.component.ts b/packages/angular/src/lib/cdk/list-view/list-view.component.ts index 0901bea..f678597 100644 --- a/packages/angular/src/lib/cdk/list-view/list-view.component.ts +++ b/packages/angular/src/lib/cdk/list-view/list-view.component.ts @@ -3,8 +3,9 @@ import { ItemEventData, KeyedTemplate, LayoutBase, ListView, ObservableArray, pr import { extractSingleViewRecursive } from '../../element-registry/registry'; import { NativeScriptDebug } from '../../trace'; -import { NgViewTemplate } from '../../view-refs'; import { isListLikeIterable } from '../../utils/general'; +import { NgViewTemplate } from '../../view-refs'; +import { DetachedLoader } from '../detached-loader'; const NG_VIEW = '_ngViewRef'; @@ -89,7 +90,9 @@ export interface SetupItemViewArgs { template: ` `, + standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, + imports: [DetachedLoader], providers: [{ provide: TEMPLATED_ITEMS_COMPONENT, useExisting: forwardRef(() => ListViewComponent) }], }) export class ListViewComponent implements DoCheck, OnDestroy, AfterContentInit, TemplatedItemsHost { @@ -293,7 +296,10 @@ export function getItemViewRoot(viewRef: EmbeddedViewRef, rootLocator: } // eslint-disable-next-line @angular-eslint/directive-selector -@Directive({ selector: '[nsTemplateKey],[nsTemplateKeys]' }) +@Directive({ + selector: '[nsTemplateKey],[nsTemplateKeys]', + standalone: true, +}) export class TemplateKeyDirective { constructor(private templateRef: TemplateRef, @Host() @Inject(TEMPLATED_ITEMS_COMPONENT) private comp: TemplatedItemsHost) {} diff --git a/packages/angular/src/lib/cdk/platform-filters/android-filter.component.ts b/packages/angular/src/lib/cdk/platform-filters/android-filter.component.ts index c643378..564b9f3 100644 --- a/packages/angular/src/lib/cdk/platform-filters/android-filter.component.ts +++ b/packages/angular/src/lib/cdk/platform-filters/android-filter.component.ts @@ -1,11 +1,14 @@ /* eslint-disable @angular-eslint/component-selector */ import { Component, Inject } from '@angular/core'; -import { platformNames, IDevice } from '@nativescript/core'; +import { IDevice, platformNames } from '@nativescript/core'; import { DEVICE } from '../../tokens'; @Component({ selector: 'android', - template: ``, + template: `@if (show) { + + }`, + standalone: true, }) export class AndroidFilterComponent { public show: boolean; diff --git a/packages/angular/src/lib/cdk/platform-filters/ios-filter.component.ts b/packages/angular/src/lib/cdk/platform-filters/ios-filter.component.ts index 6e820d1..6da8395 100644 --- a/packages/angular/src/lib/cdk/platform-filters/ios-filter.component.ts +++ b/packages/angular/src/lib/cdk/platform-filters/ios-filter.component.ts @@ -1,11 +1,14 @@ /* eslint-disable @angular-eslint/component-selector */ import { Component, Inject } from '@angular/core'; -import { platformNames, IDevice } from '@nativescript/core'; +import { IDevice, platformNames } from '@nativescript/core'; import { DEVICE } from '../../tokens'; @Component({ selector: 'ios', - template: ``, + template: `@if (show) { + + }`, + standalone: true, }) export class IOSFilterComponent { public show: boolean; diff --git a/packages/angular/src/lib/cdk/platform-filters/vision-filter.component.ts b/packages/angular/src/lib/cdk/platform-filters/vision-filter.component.ts index b84bdef..ae24959 100644 --- a/packages/angular/src/lib/cdk/platform-filters/vision-filter.component.ts +++ b/packages/angular/src/lib/cdk/platform-filters/vision-filter.component.ts @@ -5,7 +5,10 @@ import { DEVICE } from '../../tokens'; @Component({ selector: 'visionos', - template: ``, + template: `@if (show) { + + }`, + standalone: true, }) export class VisionOSFilterComponent { public show: boolean; diff --git a/packages/angular/src/lib/cdk/portal/portal-directives.ts b/packages/angular/src/lib/cdk/portal/portal-directives.ts index 716ced2..a7ae4fc 100644 --- a/packages/angular/src/lib/cdk/portal/portal-directives.ts +++ b/packages/angular/src/lib/cdk/portal/portal-directives.ts @@ -18,6 +18,7 @@ import { BasePortalOutlet, ComponentPortal, DomPortal, Portal, TemplatePortal } @Directive({ selector: '[cdkPortal]', exportAs: 'cdkPortal', + standalone: true, }) export class CdkPortal extends TemplatePortal { constructor(templateRef: TemplateRef, viewContainerRef: ViewContainerRef) { @@ -40,6 +41,7 @@ export type CdkPortalOutletAttachedRef = ComponentRef | EmbeddedViewRef", + standalone: true, + imports: [PageRouterOutlet], }) export class NSEmptyOutletComponent { @ViewChild(PageRouterOutlet, { read: PageRouterOutlet, static: false }) pageRouterOutlet: PageRouterOutlet; diff --git a/packages/angular/src/lib/legacy/router/ns-router-link-active.ts b/packages/angular/src/lib/legacy/router/ns-router-link-active.ts index 0b17316..331ae90 100644 --- a/packages/angular/src/lib/legacy/router/ns-router-link-active.ts +++ b/packages/angular/src/lib/legacy/router/ns-router-link-active.ts @@ -51,6 +51,7 @@ import { NSRouterLink } from './ns-router-link'; @Directive({ selector: '[nsRouterLinkActive]', exportAs: 'routerLinkActive', + standalone: true, }) export class NSRouterLinkActive implements OnChanges, OnDestroy, AfterContentInit { // tslint:disable-line:max-line-length directive-class-suffix diff --git a/packages/angular/src/lib/legacy/router/ns-router-link.ts b/packages/angular/src/lib/legacy/router/ns-router-link.ts index b63fe70..b71bc0b 100644 --- a/packages/angular/src/lib/legacy/router/ns-router-link.ts +++ b/packages/angular/src/lib/legacy/router/ns-router-link.ts @@ -33,7 +33,10 @@ export type QueryParamsHandling = 'merge' | 'preserve' | ''; * instead look in the current component"s children for the route. * And if the segment begins with `../`, the router will go up one level. */ -@Directive({ selector: '[nsRouterLink]' }) +@Directive({ + selector: '[nsRouterLink]', + standalone: true, +}) export class NSRouterLink implements AfterViewInit { // tslint:disable-line:directive-class-suffix @Input() target: string; diff --git a/packages/angular/src/lib/legacy/router/page-router-outlet.ts b/packages/angular/src/lib/legacy/router/page-router-outlet.ts index dd03f5f..9c2a36b 100644 --- a/packages/angular/src/lib/legacy/router/page-router-outlet.ts +++ b/packages/angular/src/lib/legacy/router/page-router-outlet.ts @@ -77,7 +77,10 @@ const routeToString = function (activatedRoute: ActivatedRoute | ActivatedRouteS registerElement('page-router-outlet', () => Frame); // eslint-disable-next-line @angular-eslint/directive-selector -@Directive({ selector: 'page-router-outlet' }) // tslint:disable-line:directive-selector +@Directive({ + selector: 'page-router-outlet', + standalone: true, +}) // tslint:disable-line:directive-selector export class PageRouterOutlet implements OnDestroy, RouterOutletContract { // tslint:disable-line:directive-class-suffix private activated: ComponentRef | null = null; diff --git a/packages/angular/src/lib/legacy/router/router.module.ts b/packages/angular/src/lib/legacy/router/router.module.ts index 3590f7d..e0211fa 100644 --- a/packages/angular/src/lib/legacy/router/router.module.ts +++ b/packages/angular/src/lib/legacy/router/router.module.ts @@ -26,10 +26,11 @@ export function provideLocationStrategy(locationStrategy: NSLocationStrategy, fr return locationStrategy ? locationStrategy : new NSLocationStrategy(frameService, startPath); } +const ROUTER_COMPONENTS = [NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent]; + @NgModule({ - declarations: [NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent], - imports: [RouterModule, NativeScriptCommonModule], - exports: [RouterModule, NSRouterLink, NSRouterLinkActive, PageRouterOutlet, NSEmptyOutletComponent], + imports: [RouterModule, NativeScriptCommonModule, ...ROUTER_COMPONENTS], + exports: [RouterModule, ...ROUTER_COMPONENTS], schemas: [NO_ERRORS_SCHEMA], }) export class NativeScriptRouterModule { diff --git a/packages/angular/src/lib/nativescript-common.module.ts b/packages/angular/src/lib/nativescript-common.module.ts index 67b6b04..e60ee3f 100644 --- a/packages/angular/src/lib/nativescript-common.module.ts +++ b/packages/angular/src/lib/nativescript-common.module.ts @@ -15,8 +15,7 @@ const CDK_COMPONENTS = [ActionBarComponent, ActionBarScope, ActionItemDirective, registerNativeScriptViewComponents(); @NgModule({ - imports: [CommonModule, FramePageModule], - declarations: [...CDK_COMPONENTS], + imports: [CommonModule, FramePageModule, ...CDK_COMPONENTS], exports: [CommonModule, FramePageModule, ...CDK_COMPONENTS], providers: [ModalDialogService], schemas: [NO_ERRORS_SCHEMA], diff --git a/packages/angular/src/lib/nativescript.ts b/packages/angular/src/lib/nativescript.ts index 6869502..7fb656d 100644 --- a/packages/angular/src/lib/nativescript.ts +++ b/packages/angular/src/lib/nativescript.ts @@ -43,8 +43,7 @@ export const NATIVESCRIPT_MODULE_STATIC_PROVIDERS: StaticProvider[] = [ export const NATIVESCRIPT_MODULE_PROVIDERS: Provider[] = [{ provide: ViewportScroller, useClass: NullViewportScroller }]; @NgModule({ - imports: [ApplicationModule, NativeScriptCommonModule], - declarations: [DetachedLoader], + imports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule], providers: [...NATIVESCRIPT_MODULE_STATIC_PROVIDERS, ...NATIVESCRIPT_MODULE_PROVIDERS], exports: [ApplicationModule, DetachedLoader, NativeScriptCommonModule], schemas: [NO_ERRORS_SCHEMA],