diff --git a/e2e/animation-examples/app/app.module.ts b/e2e/animation-examples/app/app.module.ts index 959a16990..38de237d5 100644 --- a/e2e/animation-examples/app/app.module.ts +++ b/e2e/animation-examples/app/app.module.ts @@ -5,9 +5,7 @@ import { APP_INITIALIZER } from "@angular/core"; -import { NativeScriptModule } from "@nativescript/angular"; -import { NativeScriptAnimationsModule } from "@nativescript/angular/animations"; -import { NSModuleFactoryLoader } from "@nativescript/angular/router"; +import { NativeScriptModule, NativeScriptAnimationsModule } from "@nativescript/angular"; import { AppRoutingModule } from "./app.routing"; import { AnimationsListComponent } from "./animations-list.component"; diff --git a/e2e/animation-examples/app/selector-all.component.ts b/e2e/animation-examples/app/selector-all.component.ts index ea2fb2b26..e2ab9768f 100644 --- a/e2e/animation-examples/app/selector-all.component.ts +++ b/e2e/animation-examples/app/selector-all.component.ts @@ -5,7 +5,7 @@ import { transition, trigger, } from "@angular/animations"; -import { Component } from "@angular/core"; +import { Component, NgZone } from "@angular/core"; @Component({ moduleId: module.id, @@ -31,7 +31,7 @@ import { Component } from "@angular/core"; template: ` - + { + this.items.push('random'); + // }); + } + remove(item) { const index = this.items.indexOf(item); this.items.splice(index, 1) diff --git a/e2e/animation-examples/package.json b/e2e/animation-examples/package.json index ae4ccb36a..7b511f01f 100644 --- a/e2e/animation-examples/package.json +++ b/e2e/animation-examples/package.json @@ -47,7 +47,7 @@ "typescript": "~3.8.3" }, "scripts": { - "clean": "npx rimraf hooks node_modules package-lock.json", + "clean": "npx rimraf hooks node_modules platforms package-lock.json", "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/animation-examples && npm run clean", "u": "update-ns-webpack", "e2e": "tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json", @@ -56,6 +56,8 @@ "ns-verify-bundle": "ns-verify-bundle", "update-ns-webpack": "update-ns-webpack", "ngcc": "ngcc --properties es2015 module main --first-only", - "postinstall": "npm run ngcc" + "postinstall": "npm run ngcc", + "ios": "tns debug ios --env.aot --emulator --no-hmr", + "android": "tns debug android --env.aot --emulator --no-hmr" } } diff --git a/e2e/modal-navigation-ng/app/app.routing.ts b/e2e/modal-navigation-ng/app/app.routing.ts index 8cc09094e..f03ef2a1a 100644 --- a/e2e/modal-navigation-ng/app/app.routing.ts +++ b/e2e/modal-navigation-ng/app/app.routing.ts @@ -1,5 +1,5 @@ import { NgModule } from "@angular/core"; -import { NativeScriptRouterModule } from "@nativescript/angular/router"; +import { NativeScriptRouterModule } from "@nativescript/angular"; import { Routes, Router } from "@angular/router"; import { HomeComponent } from "./home/home.component"; diff --git a/e2e/modal-navigation-ng/app/home/home.component.ts b/e2e/modal-navigation-ng/app/home/home.component.ts index a048ad6d1..e14bc5111 100644 --- a/e2e/modal-navigation-ng/app/home/home.component.ts +++ b/e2e/modal-navigation-ng/app/home/home.component.ts @@ -1,7 +1,6 @@ import { Component, ViewContainerRef } from "@angular/core"; -import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular/directives/dialogs"; -import { RouterExtensions } from "@nativescript/angular/router"; -import { EventData } from "@nativescript/core/data/observable"; +import { ModalDialogService, ModalDialogOptions, RouterExtensions } from "@nativescript/angular"; +import { EventData } from "@nativescript/core"; import { ViewContainerRefService } from "../shared/ViewContainerRefService"; import { ModalRouterComponent } from "../modal/modal-router/modal-router.component"; diff --git a/e2e/modal-navigation-ng/app/layout.component.ts b/e2e/modal-navigation-ng/app/layout.component.ts index 3fbdb6250..e31c18856 100644 --- a/e2e/modal-navigation-ng/app/layout.component.ts +++ b/e2e/modal-navigation-ng/app/layout.component.ts @@ -1,7 +1,7 @@ import { Component, ViewContainerRef } from "@angular/core"; import { Router, NavigationEnd } from "@angular/router"; import { NSLocationStrategy } from "@nativescript/angular"; -import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular/directives/dialogs"; +import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular"; import { ModalViewComponent } from "./modal-shared/modal-view.component"; import { ViewContainerRefService } from "./shared/ViewContainerRefService"; import { AppModule } from "./app.module"; diff --git a/e2e/modal-navigation-ng/app/modal-nested/modal-nested.component.ts b/e2e/modal-navigation-ng/app/modal-nested/modal-nested.component.ts index 4dd3c7ee6..6fb247ad6 100644 --- a/e2e/modal-navigation-ng/app/modal-nested/modal-nested.component.ts +++ b/e2e/modal-navigation-ng/app/modal-nested/modal-nested.component.ts @@ -1,6 +1,6 @@ import { Component } from "@angular/core"; import { View, ShownModallyData } from "@nativescript/core/ui/core/view" -import { ModalDialogParams } from "@nativescript/angular/directives/dialogs"; +import { ModalDialogParams } from "@nativescript/angular"; @Component({ moduleId: module.id, diff --git a/e2e/modal-navigation-ng/app/modal-second/modal-second.component.ts b/e2e/modal-navigation-ng/app/modal-second/modal-second.component.ts index 245a23a54..0a6d41587 100644 --- a/e2e/modal-navigation-ng/app/modal-second/modal-second.component.ts +++ b/e2e/modal-navigation-ng/app/modal-second/modal-second.component.ts @@ -1,7 +1,7 @@ import { Component } from "@angular/core"; import { View } from "@nativescript/core/ui/core/view" import { ActivatedRoute } from "@angular/router"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { RouterExtensions } from "@nativescript/angular"; @Component({ moduleId: module.id, diff --git a/e2e/modal-navigation-ng/app/modal-shared/modal-shared-second.component.ts b/e2e/modal-navigation-ng/app/modal-shared/modal-shared-second.component.ts index 5b8099703..21aebefe3 100644 --- a/e2e/modal-navigation-ng/app/modal-shared/modal-shared-second.component.ts +++ b/e2e/modal-navigation-ng/app/modal-shared/modal-shared-second.component.ts @@ -1,9 +1,9 @@ import { Component } from "@angular/core"; -import { ModalDialogOptions, ModalDialogService } from "@nativescript/angular/modal-dialog"; +import { ModalDialogOptions, ModalDialogService } from "@nativescript/angular"; import { ViewContainerRefService } from "../shared/ViewContainerRefService"; import { ModalViewComponent } from "../modal-shared/modal-view.component"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { RouterExtensions } from "@nativescript/angular"; @Component({ selector: "ns-second", diff --git a/e2e/modal-navigation-ng/app/modal-shared/modal-view-content.component.ts b/e2e/modal-navigation-ng/app/modal-shared/modal-view-content.component.ts index d1e0a8ef2..a3f2a3c8e 100644 --- a/e2e/modal-navigation-ng/app/modal-shared/modal-view-content.component.ts +++ b/e2e/modal-navigation-ng/app/modal-shared/modal-view-content.component.ts @@ -1,5 +1,5 @@ import { Component } from "@angular/core"; -import { ModalDialogParams } from "@nativescript/angular/modal-dialog"; +import { ModalDialogParams } from "@nativescript/angular"; @Component({ selector: "ModalViewContent", diff --git a/e2e/modal-navigation-ng/app/modal-shared/modal-view.component.ts b/e2e/modal-navigation-ng/app/modal-shared/modal-view.component.ts index e05981c1b..2e5e2a9fc 100644 --- a/e2e/modal-navigation-ng/app/modal-shared/modal-view.component.ts +++ b/e2e/modal-navigation-ng/app/modal-shared/modal-view.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit } from "@angular/core"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { RouterExtensions } from "@nativescript/angular"; @Component({ selector: "ModalView", diff --git a/e2e/modal-navigation-ng/app/modal/modal-router/modal-router.component.ts b/e2e/modal-navigation-ng/app/modal/modal-router/modal-router.component.ts index d79059d5d..87eea3b27 100644 --- a/e2e/modal-navigation-ng/app/modal/modal-router/modal-router.component.ts +++ b/e2e/modal-navigation-ng/app/modal/modal-router/modal-router.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; -import { RouterExtensions } from "@nativescript/angular/router"; -import { ModalDialogParams } from "@nativescript/angular/directives/dialogs"; +import { RouterExtensions } from "@nativescript/angular"; +import { ModalDialogParams } from "@nativescript/angular"; @Component({ moduleId: module.id, diff --git a/e2e/modal-navigation-ng/app/modal/modal.component.ts b/e2e/modal-navigation-ng/app/modal/modal.component.ts index f5f7c26fd..6c4ee4649 100644 --- a/e2e/modal-navigation-ng/app/modal/modal.component.ts +++ b/e2e/modal-navigation-ng/app/modal/modal.component.ts @@ -1,6 +1,6 @@ import { Component, ViewContainerRef } from "@angular/core"; -import { ModalDialogParams, ModalDialogOptions, ModalDialogService } from "@nativescript/angular/directives/dialogs"; -import { RouterExtensions, PageRoute } from "@nativescript/angular/router"; +import { ModalDialogParams, ModalDialogOptions, ModalDialogService } from "@nativescript/angular"; +import { RouterExtensions, PageRoute } from "@nativescript/angular"; import { ActivatedRoute } from "@angular/router"; import { View, ShownModallyData, EventData } from "@nativescript/core/ui/core/view" import { confirm } from "@nativescript/core/ui/dialogs"; diff --git a/e2e/modal-navigation-ng/app/navigation/basic.navigation.component.ts b/e2e/modal-navigation-ng/app/navigation/basic.navigation.component.ts index 59460cb78..c203da370 100644 --- a/e2e/modal-navigation-ng/app/navigation/basic.navigation.component.ts +++ b/e2e/modal-navigation-ng/app/navigation/basic.navigation.component.ts @@ -1,6 +1,6 @@ import { Component, ViewContainerRef, Input, ViewChild, ElementRef } from "@angular/core"; import { Router, NavigationEnd } from "@angular/router"; -import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular/directives/dialogs"; +import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular"; import { ModalComponent } from "../modal/modal.component"; import { ModalRouterComponent } from "../modal/modal-router/modal-router.component"; import { confirm } from "@nativescript/core/ui/dialogs"; diff --git a/e2e/modal-navigation-ng/app/second/second.component.ts b/e2e/modal-navigation-ng/app/second/second.component.ts index b0d1d0f5c..290441c61 100644 --- a/e2e/modal-navigation-ng/app/second/second.component.ts +++ b/e2e/modal-navigation-ng/app/second/second.component.ts @@ -1,11 +1,10 @@ import { Component, ViewContainerRef } from "@angular/core"; -import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular/directives/dialogs"; -import { EventData } from "@nativescript/core/data/observable"; -import { Frame } from "@nativescript/core/ui/frame"; -import { View } from "@nativescript/core/ui/core/view"; +import { ModalDialogService, ModalDialogOptions } from "@nativescript/angular"; +import { EventData } from "@nativescript/core"; +import { Frame } from "@nativescript/core"; +import { View } from "@nativescript/core"; import { ModalRouterComponent } from "../modal/modal-router/modal-router.component"; -import { PageRouterOutlet } from "@nativescript/angular/router/page-router-outlet"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { RouterExtensions } from "@nativescript/angular"; import { ModalComponent } from "../modal/modal.component"; import { AppModule } from "../app.module"; @Component({ diff --git a/e2e/modal-navigation-ng/package.json b/e2e/modal-navigation-ng/package.json index e842b3019..8288caf02 100644 --- a/e2e/modal-navigation-ng/package.json +++ b/e2e/modal-navigation-ng/package.json @@ -49,9 +49,11 @@ "scripts": { "e2e": "tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json", "e2e-watch": "tsc -p e2e --watch", - "clean": "npx rimraf hooks node_modules package-lock.json", - "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/animation-examples && npm run clean", + "clean": "npx rimraf hooks node_modules platforms package-lock.json", + "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/modal-navigation-ng && npm run clean", "ngcc": "ngcc --properties es2015 module main --first-only", - "postinstall": "npm run ngcc" + "postinstall": "npm run ngcc", + "ios": "tns debug ios --env.aot --emulator --no-hmr", + "android": "tns debug android --env.aot --emulator --no-hmr" } } diff --git a/e2e/nested-router-tab-view/app/modal/modal.component.ts b/e2e/nested-router-tab-view/app/modal/modal.component.ts index 1b799c191..8ba0c2ae8 100644 --- a/e2e/nested-router-tab-view/app/modal/modal.component.ts +++ b/e2e/nested-router-tab-view/app/modal/modal.component.ts @@ -26,7 +26,8 @@ export class ModalComponent { } close(layoutRoot: View) { - layoutRoot.closeModal(); + this.modal.closeModal(); + // layoutRoot.closeModal(); } ngOnInit() { diff --git a/e2e/nested-router-tab-view/package.json b/e2e/nested-router-tab-view/package.json index 284f802b1..2739c99d4 100644 --- a/e2e/nested-router-tab-view/package.json +++ b/e2e/nested-router-tab-view/package.json @@ -46,8 +46,8 @@ "compile-tests": "tsc -p e2e --watch", "e2e": "tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json", "e2e-watch": "tsc -p e2e --watch", - "clean": "npx rimraf hooks node_modules package-lock.json", - "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/animation-examples && npm run clean", + "clean": "npx rimraf hooks node_modules platforms package-lock.json", + "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/nested-router-tab-view && npm run clean", "ngcc": "ngcc --properties es2015 module main --first-only", "postinstall": "npm run ngcc" } diff --git a/e2e/router/app/app-routing.module.ts b/e2e/router/app/app-routing.module.ts index 97fdedd1f..302f562db 100644 --- a/e2e/router/app/app-routing.module.ts +++ b/e2e/router/app/app-routing.module.ts @@ -1,5 +1,5 @@ import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; -import { NativeScriptRouterModule, NSEmptyOutletComponent } from "@nativescript/angular/router"; +import { NativeScriptRouterModule, NSEmptyOutletComponent } from "@nativescript/angular"; import { FirstComponent } from "./first/first.component" import { SecondComponent } from "./second/second.component" @@ -26,7 +26,7 @@ export const routes = [ path: "lazy-named", outlet: "lazyNameOutlet", component: NSEmptyOutletComponent, - loadChildren: "./lazy-named/lazy-named.module#LazyNamedModule", + loadChildren: () => import('./lazy-named/lazy-named.module').then(m => m.LazyNamedModule), } ] }, @@ -45,17 +45,11 @@ export const routes = [ }, { path: "lazy", - loadChildren: "./lazy/lazy.module#LazyModule", + component: NSEmptyOutletComponent, + loadChildren: () => import('./lazy/lazy.module').then(m => m.LazyModule), } ]; -export const navigatableComponents = [ - FirstComponent, - SecondComponent, - MasterComponent, - DetailComponent -]; - @NgModule({ imports: [NativeScriptRouterModule, NativeScriptRouterModule.forRoot(routes)], exports: [NativeScriptRouterModule], diff --git a/e2e/router/app/app.module.ngfactory.d.ts b/e2e/router/app/app.module.ngfactory.d.ts deleted file mode 100644 index 793157de3..000000000 --- a/e2e/router/app/app.module.ngfactory.d.ts +++ /dev/null @@ -1,4 +0,0 @@ -/** - * A dynamically generated module when compiled with AoT. - */ -export const AppModuleNgFactory: any; \ No newline at end of file diff --git a/e2e/router/app/app.module.ts b/e2e/router/app/app.module.ts index 84fdb0cb5..2df018787 100644 --- a/e2e/router/app/app.module.ts +++ b/e2e/router/app/app.module.ts @@ -1,11 +1,13 @@ -import { NgModule, NgModuleFactoryLoader, NO_ERRORS_SCHEMA } from "@angular/core"; -import { NativeScriptModule } from "@nativescript/angular"; -import { NSModuleFactoryLoader } from "@nativescript/angular/router"; +import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; +import { NativeScriptModule, NativeScriptAnimationsModule } from "@nativescript/angular"; import { AppRoutingModule, - navigatableComponents, } from "./app-routing.module"; +import { FirstComponent } from "./first/first.component" +import { SecondComponent } from "./second/second.component" +import { MasterComponent } from "./second/master.component" +import { DetailComponent } from "./second/detail.component" import { AppComponent } from "./app.component"; @@ -17,14 +19,15 @@ enable(); @NgModule({ declarations: [ AppComponent, - ...navigatableComponents, + FirstComponent, + SecondComponent, + MasterComponent, + DetailComponent, ], bootstrap: [AppComponent], - providers: [ - { provide: NgModuleFactoryLoader, useClass: NSModuleFactoryLoader } - ], imports: [ NativeScriptModule, + // NativeScriptAnimationsModule, AppRoutingModule, ], schemas: [NO_ERRORS_SCHEMA], diff --git a/e2e/router/app/first/first.component.ts b/e2e/router/app/first/first.component.ts index 8eb833286..a792abc27 100644 --- a/e2e/router/app/first/first.component.ts +++ b/e2e/router/app/first/first.component.ts @@ -1,6 +1,6 @@ import { Component, OnInit, OnDestroy, OnChanges, DoCheck } from "@angular/core"; -import { RouterExtensions } from "@nativescript/angular/router"; -import { Page } from "@nativescript/core/ui/page"; +import { RouterExtensions } from "@nativescript/angular"; +import { Page } from "@nativescript/core"; import { CounterService } from "../counter.service"; import { ActivatedRoute } from "@angular/router"; @@ -39,6 +39,10 @@ export class FirstComponent implements OnInit, OnDestroy, DoCheck { console.log("FirstComponent - constructor() page: " + page); } + tapMe() { + console.log('here!!!') + } + ngOnInit() { console.log("FirstComponent - ngOnInit()"); this.sub = this.route.queryParams.subscribe((params) =>{ diff --git a/e2e/router/app/lazy-named/lazy-named.module.ts b/e2e/router/app/lazy-named/lazy-named.module.ts index 1b1ae58fe..f0016b05c 100644 --- a/e2e/router/app/lazy-named/lazy-named.module.ts +++ b/e2e/router/app/lazy-named/lazy-named.module.ts @@ -1,8 +1,7 @@ import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; import { Route } from "@angular/router"; -import { NativeScriptCommonModule } from "@nativescript/angular/common"; -import { NativeScriptRouterModule } from "@nativescript/angular/router"; +import { NativeScriptCommonModule, NativeScriptRouterModule } from "@nativescript/angular"; import { NestedMasterComponent } from "./nested-master.component" import { NestedDetailComponent } from "./nested-detail.component" @@ -24,6 +23,7 @@ const routes: Route[] = [ NestedDetailComponent ], exports:[ + NativeScriptRouterModule, NestedMasterComponent, NestedDetailComponent ] diff --git a/e2e/router/app/lazy-named/nested-detail.component.ts b/e2e/router/app/lazy-named/nested-detail.component.ts index 6fc551922..705351aa6 100644 --- a/e2e/router/app/lazy-named/nested-detail.component.ts +++ b/e2e/router/app/lazy-named/nested-detail.component.ts @@ -3,11 +3,11 @@ import { ActivatedRoute, Router, Route } from "@angular/router"; import { Location } from "@angular/common"; import { Observable } from "rxjs"; import { map } from "rxjs/operators"; -import { Page } from "@nativescript/core/ui/page"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { Page } from "@nativescript/core"; +import { RouterExtensions } from "@nativescript/angular"; @Component({ - selector: "detail", + selector: "nested-detail", template: ` diff --git a/e2e/router/app/lazy-named/nested-master.component.ts b/e2e/router/app/lazy-named/nested-master.component.ts index e7582697a..f1d2c57bb 100644 --- a/e2e/router/app/lazy-named/nested-master.component.ts +++ b/e2e/router/app/lazy-named/nested-master.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit, OnDestroy } from "@angular/core"; -import { Page } from "@nativescript/core/ui/page"; +import { Page } from "@nativescript/core"; @Component({ - selector: "master", + selector: "nested-master", template: ` diff --git a/e2e/router/app/lazy/lazy-componentless-route.component.ts b/e2e/router/app/lazy/lazy-componentless-route.component.ts index 55efd5a1e..a3ba7abce 100644 --- a/e2e/router/app/lazy/lazy-componentless-route.component.ts +++ b/e2e/router/app/lazy/lazy-componentless-route.component.ts @@ -1,12 +1,12 @@ import { Component, OnInit, OnDestroy, OnChanges } from "@angular/core"; import { ActivatedRoute, Router, Route } from "@angular/router"; import { Location } from "@angular/common"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { RouterExtensions } from "@nativescript/angular"; import { Page } from "@nativescript/core/ui/page"; @Component({ - selector: "lazy", + selector: "lazy-cmp-less-route", template: ` diff --git a/e2e/router/app/lazy/lazy.component.ts b/e2e/router/app/lazy/lazy.component.ts index 2e57afa63..5e41be109 100644 --- a/e2e/router/app/lazy/lazy.component.ts +++ b/e2e/router/app/lazy/lazy.component.ts @@ -1,9 +1,9 @@ import { Component, OnInit, OnDestroy, OnChanges } from "@angular/core"; import { ActivatedRoute, Router, Route } from "@angular/router"; import { Location } from "@angular/common"; -import { RouterExtensions } from "@nativescript/angular/router"; +import { RouterExtensions } from "@nativescript/angular"; -import { Page } from "@nativescript/core/ui/page"; +import { Page } from "@nativescript/core"; @Component({ selector: "lazy", diff --git a/e2e/router/app/lazy/lazy.module.ts b/e2e/router/app/lazy/lazy.module.ts index 5435d36ae..b136ea276 100644 --- a/e2e/router/app/lazy/lazy.module.ts +++ b/e2e/router/app/lazy/lazy.module.ts @@ -1,8 +1,7 @@ import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core"; import { Route } from "@angular/router"; -import { NativeScriptCommonModule } from "@nativescript/angular/common"; -import { NativeScriptRouterModule } from "@nativescript/angular/router"; +import { NativeScriptCommonModule, NativeScriptRouterModule } from "@nativescript/angular"; import { LazyComponent } from "./lazy.component"; import { LazyComponentlessRouteComponent } from "./lazy-componentless-route.component"; @@ -33,6 +32,9 @@ const routes: Route[] = [ declarations: [ LazyComponent, LazyComponentlessRouteComponent + ], + exports: [ + NativeScriptRouterModule ] }) export class LazyModule { } \ No newline at end of file diff --git a/e2e/router/app/main.aot.ts b/e2e/router/app/main.aot.ts deleted file mode 100644 index 015f6e008..000000000 --- a/e2e/router/app/main.aot.ts +++ /dev/null @@ -1,4 +0,0 @@ -import { platformNativeScript } from "@nativescript/angular/platform-static"; -import { AppModuleNgFactory } from "./app.module.ngfactory"; - -platformNativeScript().bootstrapModuleFactory(AppModuleNgFactory); diff --git a/e2e/router/app/second/detail.component.ts b/e2e/router/app/second/detail.component.ts index 4b40290da..f8b9acf6c 100644 --- a/e2e/router/app/second/detail.component.ts +++ b/e2e/router/app/second/detail.component.ts @@ -1,6 +1,6 @@ import { Component} from "@angular/core"; import { ActivatedRoute } from "@angular/router"; -import { Page } from "@nativescript/core/ui/page"; +import { Page } from "@nativescript/core"; import { Observable } from "rxjs"; import { map } from "rxjs/operators"; diff --git a/e2e/router/app/second/master.component.ts b/e2e/router/app/second/master.component.ts index f4821c933..a7b0d52b9 100644 --- a/e2e/router/app/second/master.component.ts +++ b/e2e/router/app/second/master.component.ts @@ -1,5 +1,5 @@ import { Component, OnInit, OnDestroy } from "@angular/core"; -import { Page } from "@nativescript/core/ui/page"; +import { Page } from "@nativescript/core"; @Component({ selector: "master", template: ` diff --git a/e2e/router/app/second/second.component.ts b/e2e/router/app/second/second.component.ts index 95eae761d..390dd1c5f 100644 --- a/e2e/router/app/second/second.component.ts +++ b/e2e/router/app/second/second.component.ts @@ -1,8 +1,8 @@ import { Component, OnInit, OnDestroy } from "@angular/core"; import { ActivatedRoute } from "@angular/router"; -import { RouterExtensions } from "@nativescript/angular/router"; -import { Page } from "@nativescript/core/ui/page"; +import { RouterExtensions } from "@nativescript/angular"; +import { Page } from "@nativescript/core"; import { Observable, Subscription } from "rxjs"; import { map } from "rxjs/operators"; import { CounterService } from "../counter.service"; @@ -50,11 +50,7 @@ export class SecondComponent implements OnInit, OnDestroy { ngOnInit() { this.sub = this.route.queryParams.subscribe((params) => { - console.log(""); - console.log(""); - console.log(params); - console.log(""); - console.log(""); + console.log("route.queryParams:", params); }); console.log("SecondComponent - ngOnInit()"); } diff --git a/e2e/router/package.json b/e2e/router/package.json index 173f6a68d..01537d520 100644 --- a/e2e/router/package.json +++ b/e2e/router/package.json @@ -4,7 +4,10 @@ "readme": "NativeScript Application", "repository": "", "nativescript": { - "id": "org.nativescript.router" + "id": "org.nativescript.router", + "tns-ios": { + "version": "6.5.1" + } }, "dependencies": { "@angular/animations": "~9.1.0", @@ -42,8 +45,18 @@ "typescript": "~3.8.3" }, "scripts": { + "clean": "npx rimraf hooks node_modules platforms package-lock.json", "e2e": "tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json", + "e2e-watch": "tsc -p e2e --watch", "compile-tests-w": "tsc -p e2e --watch", - "update-app-ng-deps": "update-app-ng-deps" + "update-app-ng-deps": "update-app-ng-deps", + "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/router && npm run clean", + "u": "update-ns-webpack", + "ns-verify-bundle": "ns-verify-bundle", + "update-ns-webpack": "update-ns-webpack", + "ngcc": "ngcc --properties es2015 module main --first-only", + "postinstall": "npm run ngcc", + "ios": "tns debug ios --env.aot --emulator --no-hmr", + "android": "tns debug android --env.aot --emulator --no-hmr" } } diff --git a/e2e/router/tsconfig.json b/e2e/router/tsconfig.json index a3ba8b51a..ac4e60f3a 100644 --- a/e2e/router/tsconfig.json +++ b/e2e/router/tsconfig.json @@ -16,22 +16,13 @@ "paths": { "~/*": [ "app/*" - ], - "*": [ - "./node_modules/*" ] } }, - "include": [ - "../../nativescript-angular-package", - "../../nativescript-angular", - "**/*" + "files": [ + "./app/main.ts" ], "exclude": [ - "../../nativescript-angular-package/node_modules", - "../../nativescript-angular-package/**/*.d.ts", - "../../nativescript-angular/node_modules", - "../../nativescript-angular/**/*.d.ts", "node_modules", "platforms", "**/*.aot", diff --git a/e2e/tests-app-ng/app/app.module.ts b/e2e/tests-app-ng/app/app.module.ts index dc66e43ed..0b0e641bd 100644 --- a/e2e/tests-app-ng/app/app.module.ts +++ b/e2e/tests-app-ng/app/app.module.ts @@ -1,10 +1,8 @@ import { NgModule, NgModuleFactoryLoader, NO_ERRORS_SCHEMA } from "@angular/core"; -import { NativeScriptModule } from "@nativescript/angular"; +import { NativeScriptModule, NativeScriptRouterModule, NativeScriptFormsModule } from "@nativescript/angular"; import { NavigationMainPageRouterComponent } from "./main/main-page-router-outlet"; import { routableComponents, routes } from "./app.routes"; -import { NativeScriptRouterModule } from "@nativescript/angular/router"; -import { NativeScriptFormsModule } from "@nativescript/angular/forms"; import { NestedComponent } from "./action-bar/action-bar-nested.component"; import { CustomTemplateComponent } from "./list-view/list-view-item-template.component"; diff --git a/e2e/tests-app-ng/app/app.routes.ts b/e2e/tests-app-ng/app/app.routes.ts index 486328ba2..c3f9276b9 100644 --- a/e2e/tests-app-ng/app/app.routes.ts +++ b/e2e/tests-app-ng/app/app.routes.ts @@ -96,8 +96,9 @@ export const routableComponents = [ // Set `isNavigatable: true` if the page is a main page to other sub pages export const routes = [ - { path: "", component: MainComponent, data: { title: "" } }, - { path: "", component: ModalContentComponent, data: { title: "" } }, + { path: "", pathMatch: "full", redirectTo: "main" }, + { path: "main", component: MainComponent, data: { title: "" } }, + // { path: "", component: ModalContentComponent, data: { title: "" } }, { path: "template", component: AppComponent, data: { title: "Template", isNavigatable: true } }, { @@ -192,6 +193,6 @@ export const routes = [ // Needed for AoT compilation { path: "lazy", - loadChildren: "./lazy/lazy.module#LazyModule" + loadChildren: () => import("./lazy/lazy.module").then(m => m.LazyModule) }, ]; diff --git a/e2e/tests-app-ng/app/binding/binding-page.component.ts b/e2e/tests-app-ng/app/binding/binding-page.component.ts index 67d37d7de..7cf7d526a 100644 --- a/e2e/tests-app-ng/app/binding/binding-page.component.ts +++ b/e2e/tests-app-ng/app/binding/binding-page.component.ts @@ -3,28 +3,36 @@ import { Component } from "@angular/core"; @Component({ selector: "binding", template: ` - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + ` }) @@ -34,6 +42,7 @@ export class BindingComponent { private _curlyBracket: string; private _result: string; public completedDate: Date = new Date(2016, 5, 3); + labelShow = true; constructor() { this.refresh(); @@ -63,6 +72,11 @@ export class BindingComponent { return this._result; } + toggle() { + this.labelShow = !this.labelShow; + console.log(this.labelShow); + } + changeValues() { this._oneWayDataBinding = this.twoWayDataBinding; this._curlyBracket = this.twoWayDataBinding; diff --git a/e2e/tests-app-ng/app/button/button-main-page.component.ts b/e2e/tests-app-ng/app/button/button-main-page.component.ts index f7be5ec8d..eba145679 100644 --- a/e2e/tests-app-ng/app/button/button-main-page.component.ts +++ b/e2e/tests-app-ng/app/button/button-main-page.component.ts @@ -1,7 +1,7 @@ import { Component } from "@angular/core"; @Component({ - selector: "main", + selector: "main-button", template: ` diff --git a/e2e/tests-app-ng/app/list-picker/list-picker-main-page.component.ts b/e2e/tests-app-ng/app/list-picker/list-picker-main-page.component.ts index f1756d9ef..27b3111e6 100644 --- a/e2e/tests-app-ng/app/list-picker/list-picker-main-page.component.ts +++ b/e2e/tests-app-ng/app/list-picker/list-picker-main-page.component.ts @@ -1,7 +1,7 @@ import { Component } from "@angular/core"; @Component({ - selector: "main", + selector: "main-list-picker", template: ` diff --git a/e2e/tests-app-ng/app/list-view/list-view-main-page.component.ts b/e2e/tests-app-ng/app/list-view/list-view-main-page.component.ts index 3b7e95756..368c103da 100644 --- a/e2e/tests-app-ng/app/list-view/list-view-main-page.component.ts +++ b/e2e/tests-app-ng/app/list-view/list-view-main-page.component.ts @@ -1,7 +1,7 @@ import { Component } from "@angular/core"; @Component({ - selector: "main", + selector: "main-listview", template: ` diff --git a/e2e/tests-app-ng/app/list-view/list-view-nested-template.component.ts b/e2e/tests-app-ng/app/list-view/list-view-nested-template.component.ts index 085104737..a1d73e47f 100644 --- a/e2e/tests-app-ng/app/list-view/list-view-nested-template.component.ts +++ b/e2e/tests-app-ng/app/list-view/list-view-nested-template.component.ts @@ -1,7 +1,7 @@ import { Component, ChangeDetectionStrategy } from "@angular/core"; @Component({ - selector: "list-test", + selector: "list-test-nested", template: ` diff --git a/e2e/tests-app-ng/app/main.aot.ts b/e2e/tests-app-ng/app/main.aot.ts deleted file mode 100644 index 7fe4ee42f..000000000 --- a/e2e/tests-app-ng/app/main.aot.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { platformNativeScript } from "@nativescript/angular/platform-static"; - -import { AppModuleNgFactory } from "./app.module.ngfactory"; - -platformNativeScript().bootstrapModuleFactory(AppModuleNgFactory); diff --git a/e2e/tests-app-ng/app/main.ts b/e2e/tests-app-ng/app/main.ts index 9d0112e98..35bebd4d8 100644 --- a/e2e/tests-app-ng/app/main.ts +++ b/e2e/tests-app-ng/app/main.ts @@ -1,5 +1,8 @@ import { platformNativeScriptDynamic } from "@nativescript/angular/platform"; import { AppModule } from "./app.module"; +import { enable } from "@nativescript/core/trace"; + +enable(); platformNativeScriptDynamic().bootstrapModule(AppModule); diff --git a/e2e/tests-app-ng/app/main/main-page-router-outlet.ts b/e2e/tests-app-ng/app/main/main-page-router-outlet.ts index 1a37b2f5d..7c30b1062 100644 --- a/e2e/tests-app-ng/app/main/main-page-router-outlet.ts +++ b/e2e/tests-app-ng/app/main/main-page-router-outlet.ts @@ -2,7 +2,7 @@ import { Component } from "@angular/core"; import * as platform from "@nativescript/core/platform"; @Component({ - selector: "main", + selector: "main-page", styles: [ ".main-btn{" + "margin-right:5; margin-bottom:5;" + @@ -14,7 +14,7 @@ import * as platform from "@nativescript/core/platform"; `, diff --git a/e2e/tests-app-ng/app/modal/modal-view-main-page.component.ts b/e2e/tests-app-ng/app/modal/modal-view-main-page.component.ts index 786e8ec7b..79a125ee5 100644 --- a/e2e/tests-app-ng/app/modal/modal-view-main-page.component.ts +++ b/e2e/tests-app-ng/app/modal/modal-view-main-page.component.ts @@ -1,7 +1,7 @@ import { Component } from "@angular/core"; @Component({ - selector: "main", + selector: "main-modal", template: ` diff --git a/e2e/tests-app-ng/ngcc.config.js b/e2e/tests-app-ng/ngcc.config.js new file mode 100644 index 000000000..ec433d6f3 --- /dev/null +++ b/e2e/tests-app-ng/ngcc.config.js @@ -0,0 +1,20 @@ +module.exports = { + packages: { + "@nativescript/angular": { + entryPoints: { + ".": { + override: { + main: "./index.js", + typings: "./index.d.ts", + }, + ignoreMissingDependencies: true, + } + }, + ignorableDeepImportMatchers: [ + /zone.js\//, + /tns-core-modules\//, + /@nativescript\/core\//, + ] + } + } +}; \ No newline at end of file diff --git a/e2e/tests-app-ng/package.json b/e2e/tests-app-ng/package.json index 45797ca4a..85782a0c2 100644 --- a/e2e/tests-app-ng/package.json +++ b/e2e/tests-app-ng/package.json @@ -6,10 +6,10 @@ "nativescript": { "id": "org.nativescript.testsappng", "tns-ios": { - "version": "6.0.2" + "version": "6.5.0" }, "tns-android": { - "version": "6.0.2" + "version": "6.5.0" } }, "dependencies": { @@ -43,6 +43,18 @@ "typescript": "~3.8.3" }, "scripts": { - "tslint": "tslint --config tslint.json 'app/**/*.ts'" + "tslint": "tslint --config tslint.json 'app/**/*.ts'", + "clean": "npx rimraf hooks node_modules platforms package-lock.json", + "setup": "cd ../../nativescript-angular && npm run pack && cd ../e2e/tests-app-ng && npm run clean", + "u": "update-ns-webpack", + "e2e": "tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json", + "e2e-watch": "tsc -p e2e --watch", + "update-app-ng-deps": "update-app-ng-deps", + "ns-verify-bundle": "ns-verify-bundle", + "update-ns-webpack": "update-ns-webpack", + "ngcc": "ngcc --properties es2015 module main --first-only", + "postinstall": "npm run ngcc", + "ios": "tns debug ios --env.aot --emulator --no-hmr", + "android": "tns debug android --env.aot --emulator --no-hmr" } } diff --git a/e2e/tests-app-ng/tsconfig.json b/e2e/tests-app-ng/tsconfig.json index a3ba8b51a..576a402fa 100644 --- a/e2e/tests-app-ng/tsconfig.json +++ b/e2e/tests-app-ng/tsconfig.json @@ -1,40 +1,34 @@ { - "compilerOptions": { - "module": "commonjs", - "target": "es5", - "experimentalDecorators": true, - "emitDecoratorMetadata": true, - "noEmitHelpers": true, - "noEmitOnError": true, - "skipLibCheck": true, - "lib": [ - "es2017", - "dom", - "es6" - ], - "baseUrl": ".", - "paths": { - "~/*": [ - "app/*" - ], - "*": [ - "./node_modules/*" - ] - } - }, - "include": [ - "../../nativescript-angular-package", - "../../nativescript-angular", - "**/*" - ], - "exclude": [ - "../../nativescript-angular-package/node_modules", - "../../nativescript-angular-package/**/*.d.ts", - "../../nativescript-angular/node_modules", - "../../nativescript-angular/**/*.d.ts", - "node_modules", - "platforms", - "**/*.aot", - "e2e" - ] + "compilerOptions": { + "module": "commonjs", + "target": "es5", + "experimentalDecorators": true, + "emitDecoratorMetadata": true, + "noEmitHelpers": true, + "noEmitOnError": true, + "skipLibCheck": true, + "lib": [ + "es2017", + "dom", + "es6" + ], + "baseUrl": ".", + "paths": { + "~/*": [ + "app/*" + ], + "*": [ + "./node_modules/*" + ] + } + }, + "files": [ + "./app/main.ts" + ], + "exclude": [ + "node_modules", + "platforms", + "**/*.aot", + "e2e" + ] } \ No newline at end of file diff --git a/nativescript-angular/animations/animations.module.ts b/nativescript-angular/animations/animations.module.ts index 304a45f0d..b33503ff4 100644 --- a/nativescript-angular/animations/animations.module.ts +++ b/nativescript-angular/animations/animations.module.ts @@ -22,10 +22,11 @@ import { ɵBrowserAnimationBuilder as BrowserAnimationBuilder, } from "@angular/platform-browser/animations"; -import { NativeScriptModule } from "../nativescript.module"; +// import { NativeScriptModule } from "../nativescript.module"; import { NativeScriptRendererFactory } from "../renderer"; import { NativeScriptAnimationDriver } from "./animation-driver"; import { throwIfAlreadyLoaded } from "../common/utils"; +import { NativeScriptCommonModule } from "../common"; @Injectable() export class InjectableAnimationEngine extends AnimationEngine { @@ -55,7 +56,7 @@ export function instantiateDefaultStyleNormalizer() { } @NgModule({ - imports: [NativeScriptModule], + imports: [NativeScriptCommonModule], providers: [ { provide: AnimationDriver, diff --git a/nativescript-angular/app-host-view.ts b/nativescript-angular/app-host-view.ts index 41ffe8e8b..1a7b47564 100644 --- a/nativescript-angular/app-host-view.ts +++ b/nativescript-angular/app-host-view.ts @@ -21,11 +21,6 @@ export class AppHostView extends ContentView { } set content(value: View) { - // TODO: WIP, determine how to handle this - if (this._content) { - return; - } - if (this._content) { this._content.parentNode = undefined; } diff --git a/nativescript-angular/index.ts b/nativescript-angular/index.ts index 6ee477c3f..0aa692a4a 100644 --- a/nativescript-angular/index.ts +++ b/nativescript-angular/index.ts @@ -10,10 +10,11 @@ export * from "./nativescript.module"; export * from "./common"; export * from "./animations"; -export * from "./router"; export * from "./file-system"; export * from "./http-client"; export * from "./forms"; +export * from "./directives/dialogs"; +export * from "./router"; export { ViewClass, diff --git a/nativescript-angular/platform-common.ts b/nativescript-angular/platform-common.ts index c8a0c2438..58e995ee9 100644 --- a/nativescript-angular/platform-common.ts +++ b/nativescript-angular/platform-common.ts @@ -3,6 +3,9 @@ import "@nativescript/core/globals"; // Require application early to work around a circular import import "@nativescript/core/application"; import "./zone-js/dist/zone-nativescript"; +// TODO: migrate to standard zone.js if possible +// investigate Ivy with templated-items-comp to allow standard zone below to be used instead of patched {N} zone above +// import 'zone.js/dist/zone'; import "./polyfills/array"; import "./polyfills/console"; import { profile, uptime } from "@nativescript/core/profiling"; @@ -210,25 +213,24 @@ export class NativeScriptPlatformRef extends PlatformRef { if (this.appOptions && this.appOptions.launchView) { launchView = this.appOptions.launchView; - if (this.appOptions.launchView.startAnimation) { - setTimeout(() => { - // ensure launch animation is executed after launchView added to view stack - this.appOptions.launchView.startAnimation(); - }); - } } else { launchView = new GridLayout(); - // Custom launch view color (useful when doing async app intializers - // where you don't want a flash of undesirable color). - const bgCol = this.appOptions && this.appOptions.backgroundColor ? this.appOptions.backgroundColor : "#fff"; - launchView.backgroundColor = new Color(bgCol); + // Custom launch view color + // Useful when using async app intializers to avoid flash of undesirable color + launchView.backgroundColor = new Color(this.appOptions + && this.appOptions.backgroundColor ? this.appOptions.backgroundColor : "#fff"); } - args.root = launchView; + setRootPage(launchView); + args.root = launchView; - // Launch Angular app - this._bootstrapper().then( - moduleRef => { + // Launch Angular app on next tick + setTimeout(() => { + if (this.appOptions && this.appOptions.launchView && this.appOptions.launchView.startAnimation) { + // ensure launch animation is executed after launchView added to view stack + this.appOptions.launchView.startAnimation(); + } + this._bootstrapper().then(moduleRef => { if (isLogEnabled()) { bootstrapLog(`Angular bootstrap bootstrap done. uptime: ${uptime()}`); @@ -255,6 +257,14 @@ export class NativeScriptPlatformRef extends PlatformRef { rootContent = this.createErrorUI(errorMessage); } ); + if (isLogEnabled()) { + bootstrapLog("bootstrapAction called, draining micro tasks queue. Root: " + rootContent); + } + (global).Zone.drainMicroTaskQueue(); + if (isLogEnabled()) { + bootstrapLog("bootstrapAction called, draining micro tasks queue finished! Root: " + rootContent); + } + }); } ); const exitCallback = profile(