Skip to content

Commit 46a0dc0

Browse files
ADjenkovSvetoslavTsenov
authored andcommitted
feat: enable nesting named page router outlets (#1556)
1 parent f5dd37c commit 46a0dc0

File tree

136 files changed

+3191
-440
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

136 files changed

+3191
-440
lines changed

Diff for: e2e/modal-navigation-ng/app/modal-second/modal-second.component.html

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,6 @@
44
</ActionBar>
55

66
<GridLayout #rootLayout rows="auto, auto" (loaded)="onLoaded($event)">
7-
<Button text="Go Back" (tap)="goBack()"></Button>
7+
<Button text="Go Back(activatedRoute)" (tap)="goBack()"></Button>
88
<Button row="1" text="Close Modal" (tap)="close(rootLayout)"></Button>
99
</GridLayout>

Diff for: e2e/modal-navigation-ng/app/modal-second/modal-second.component.ts

+5-4
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import { Component } from "@angular/core";
2-
import { View, EventData } from "tns-core-modules/ui/core/view"
2+
import { View } from "tns-core-modules/ui/core/view"
3+
import { ActivatedRoute } from "@angular/router";
34
import { RouterExtensions } from "nativescript-angular/router";
45

56
@Component({
@@ -8,14 +9,14 @@ import { RouterExtensions } from "nativescript-angular/router";
89
templateUrl: "./modal-second.component.html"
910
})
1011
export class ModalSecondComponent {
11-
constructor(private routerExtension: RouterExtensions) { }
12+
constructor(private routerExtension: RouterExtensions, private activeRoute: ActivatedRoute) { }
1213

13-
onLoaded(args: EventData) {
14+
onLoaded() {
1415
console.log("modal-second loaded");
1516
}
1617

1718
goBack() {
18-
this.routerExtension.back();
19+
this.routerExtension.back({ relativeTo: this.activeRoute });
1920
}
2021

2122
close(layoutRoot: View) {

Diff for: e2e/modal-navigation-ng/e2e/modal-frame.e2e-spec.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ describe("modal-frame:", () => {
3333

3434
afterEach(async function () {
3535
if (this.currentTest.state === "failed") {
36-
await driver.logPageSource(this.currentTest.title);
37-
await driver.logScreenshot(this.currentTest.title);
36+
await driver.logTestArtifacts(this.currentTest.title);
3837
await driver.resetApp();
3938
await screen[root]();
4039
}

Diff for: e2e/modal-navigation-ng/e2e/modal-layout.e2e-spec.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,7 @@ describe("modal-layout:", () => {
3333

3434
afterEach(async function () {
3535
if (this.currentTest.state === "failed") {
36-
await driver.logPageSource(this.currentTest.title);
37-
await driver.logScreenshot(this.currentTest.title);
36+
await driver.logTestArtifacts(this.currentTest.title);
3837
await driver.resetApp();
3938
await screen[root]();
4039
}

Diff for: e2e/modal-navigation-ng/e2e/modal.shared.e2e-spec.ts

+1-2
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,7 @@ describe("Shared modal from home and back", () => {
1818

1919
afterEach(async function () {
2020
if (this.currentTest.state === "failed") {
21-
await driver.logPageSource(this.currentTest.title);
22-
await driver.logScreenshot(this.currentTest.title);
21+
await driver.logTestArtifacts(this.currentTest.title);
2322
}
2423
});
2524

Diff for: e2e/modal-navigation-ng/e2e/screen.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ const confirmDialog = "Yes";
2727
const confirmDialogMessage = "Message";
2828
const closeModalNested = "Close Modal Nested";
2929
const closeModal = "Close Modal";
30-
const goBack = "Go Back";
30+
const goBack = "Go Back(activatedRoute)";
3131

3232
export class Screen {
3333

Diff for: e2e/modal-navigation-ng/package.json

+2-1
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,8 @@
5757
"webpack": "~4.6.0",
5858
"webpack-bundle-analyzer": "~2.13.0",
5959
"webpack-cli": "~2.1.3",
60-
"webpack-sources": "~1.1.0"
60+
"webpack-sources": "~1.1.0",
61+
"@angular-devkit/core": "~0.7.0-beta.1"
6162
},
6263
"scripts": {
6364
"e2e": "tsc -p e2e && mocha --opts ../config/mocha.opts --recursive e2e --appiumCapsLocation ../config/appium.capabilities.json",

Diff for: e2e/nested-router-tab-view/.gitignore

+12
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
.vscode
2+
3+
platforms
4+
node_modules
5+
hooks
6+
7+
/**/*.js
8+
/**/*.map
9+
e2e/reports
10+
test-results.xml
11+
12+
instrumentscli*.trace
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
3+
package="__PACKAGE__"
4+
android:versionCode="1"
5+
android:versionName="1.0">
6+
7+
<supports-screens
8+
android:smallScreens="true"
9+
android:normalScreens="true"
10+
android:largeScreens="true"
11+
android:xlargeScreens="true"/>
12+
13+
<uses-sdk
14+
android:minSdkVersion="17"
15+
android:targetSdkVersion="__APILEVEL__"/>
16+
17+
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
18+
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
19+
<uses-permission android:name="android.permission.INTERNET"/>
20+
21+
<application
22+
android:name="com.tns.NativeScriptApplication"
23+
android:allowBackup="true"
24+
android:icon="@drawable/icon"
25+
android:label="@string/app_name"
26+
android:theme="@style/AppTheme">
27+
28+
<activity
29+
android:name="com.tns.NativeScriptActivity"
30+
android:label="@string/title_activity_kimera"
31+
android:configChanges="keyboardHidden|orientation|screenSize"
32+
android:theme="@style/LaunchScreenTheme">
33+
34+
<meta-data android:name="SET_THEME_ON_LAUNCH" android:resource="@style/AppTheme" />
35+
36+
<intent-filter>
37+
<action android:name="android.intent.action.MAIN" />
38+
<category android:name="android.intent.category.LAUNCHER" />
39+
</intent-filter>
40+
</activity>
41+
<activity android:name="com.tns.ErrorReportActivity"/>
42+
</application>
43+
</manifest>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
// Add your native dependencies here:
2+
3+
// Uncomment to add recyclerview-v7 dependency
4+
//dependencies {
5+
// compile 'com.android.support:recyclerview-v7:+'
6+
//}
7+
8+
android {
9+
defaultConfig {
10+
generatedDensities = []
11+
applicationId = "org.nativescript.nestedroutertabview"
12+
}
13+
aaptOptions {
14+
additionalParameters "--no-version-vectors"
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" android:gravity="fill">
2+
<item>
3+
<bitmap android:gravity="fill" android:src="@drawable/background" />
4+
</item>
5+
<item>
6+
<bitmap android:gravity="center" android:src="@drawable/logo" />
7+
</item>
8+
</layer-list>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<color name="ns_accent">#3d5afe</color>
4+
</resources>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
4+
<!-- Application theme -->
5+
<style name="AppTheme" parent="AppThemeBase">
6+
<item name="android:datePickerStyle">@style/SpinnerDatePicker</item>
7+
<item name="android:timePickerStyle">@style/SpinnerTimePicker</item>
8+
</style>
9+
10+
<!-- Default style for DatePicker - in spinner mode -->
11+
<style name="SpinnerDatePicker" parent="android:Widget.Material.Light.DatePicker">
12+
<item name="android:datePickerMode">spinner</item>
13+
</style>
14+
15+
<!-- Default style for TimePicker - in spinner mode -->
16+
<style name="SpinnerTimePicker" parent="android:Widget.Material.Light.TimePicker">
17+
<item name="android:timePickerMode">spinner</item>
18+
</style>
19+
20+
<style name="NativeScriptToolbarStyle" parent="NativeScriptToolbarStyleBase">
21+
<item name="android:elevation">4dp</item>
22+
</style>
23+
</resources>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources>
3+
<color name="ns_primary">#F5F5F5</color>
4+
<color name="ns_primaryDark">#757575</color>
5+
<color name="ns_accent">#33B5E5</color>
6+
<color name="ns_blue">#272734</color>
7+
</resources>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<resources xmlns:android="http://schemas.android.com/apk/res/android">
3+
4+
<!-- theme to use FOR launch screen-->
5+
<style name="LaunchScreenThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
6+
<item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
7+
8+
<item name="colorPrimary">@color/ns_primary</item>
9+
<item name="colorPrimaryDark">@color/ns_primaryDark</item>
10+
<item name="colorAccent">@color/ns_accent</item>
11+
12+
<item name="android:windowBackground">@drawable/splash_screen</item>
13+
14+
<item name="android:windowActionBarOverlay">true</item>
15+
<item name="android:windowTranslucentStatus">true</item>
16+
17+
</style>
18+
19+
<style name="LaunchScreenTheme" parent="LaunchScreenThemeBase">
20+
</style>
21+
22+
<!-- theme to use AFTER launch screen is loaded-->
23+
<style name="AppThemeBase" parent="Theme.AppCompat.Light.NoActionBar">
24+
<item name="toolbarStyle">@style/NativeScriptToolbarStyle</item>
25+
26+
<item name="colorPrimary">@color/ns_primary</item>
27+
<item name="colorPrimaryDark">@color/ns_primaryDark</item>
28+
<item name="colorAccent">@color/ns_accent</item>
29+
30+
</style>
31+
32+
<style name="AppTheme" parent="AppThemeBase">
33+
</style>
34+
35+
<!-- theme for action-bar -->
36+
<style name="NativeScriptToolbarStyleBase" parent="Widget.AppCompat.Toolbar">
37+
<item name="android:background">@color/ns_primary</item>
38+
<item name="theme">@style/ThemeOverlay.AppCompat.ActionBar</item>
39+
<item name="popupTheme">@style/ThemeOverlay.AppCompat</item>
40+
41+
</style>
42+
43+
<style name="NativeScriptToolbarStyle" parent="NativeScriptToolbarStyleBase">
44+
</style>
45+
</resources>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,98 @@
1+
{
2+
"images" : [
3+
{
4+
"size" : "29x29",
5+
"idiom" : "iphone",
6+
"filename" : "icon-29.png",
7+
"scale" : "1x"
8+
},
9+
{
10+
"size" : "29x29",
11+
"idiom" : "iphone",
12+
"filename" : "[email protected]",
13+
"scale" : "2x"
14+
},
15+
{
16+
"size" : "29x29",
17+
"idiom" : "iphone",
18+
"filename" : "[email protected]",
19+
"scale" : "3x"
20+
},
21+
{
22+
"size" : "40x40",
23+
"idiom" : "iphone",
24+
"filename" : "[email protected]",
25+
"scale" : "2x"
26+
},
27+
{
28+
"size" : "40x40",
29+
"idiom" : "iphone",
30+
"filename" : "[email protected]",
31+
"scale" : "3x"
32+
},
33+
{
34+
"size" : "60x60",
35+
"idiom" : "iphone",
36+
"filename" : "[email protected]",
37+
"scale" : "2x"
38+
},
39+
{
40+
"size" : "60x60",
41+
"idiom" : "iphone",
42+
"filename" : "[email protected]",
43+
"scale" : "3x"
44+
},
45+
{
46+
"size" : "29x29",
47+
"idiom" : "ipad",
48+
"filename" : "icon-29.png",
49+
"scale" : "1x"
50+
},
51+
{
52+
"size" : "29x29",
53+
"idiom" : "ipad",
54+
"filename" : "[email protected]",
55+
"scale" : "2x"
56+
},
57+
{
58+
"size" : "40x40",
59+
"idiom" : "ipad",
60+
"filename" : "icon-40.png",
61+
"scale" : "1x"
62+
},
63+
{
64+
"size" : "40x40",
65+
"idiom" : "ipad",
66+
"filename" : "[email protected]",
67+
"scale" : "2x"
68+
},
69+
{
70+
"size" : "76x76",
71+
"idiom" : "ipad",
72+
"filename" : "icon-76.png",
73+
"scale" : "1x"
74+
},
75+
{
76+
"size" : "76x76",
77+
"idiom" : "ipad",
78+
"filename" : "[email protected]",
79+
"scale" : "2x"
80+
},
81+
{
82+
"size" : "83.5x83.5",
83+
"idiom" : "ipad",
84+
"filename" : "[email protected]",
85+
"scale" : "2x"
86+
},
87+
{
88+
"size" : "1024x1024",
89+
"idiom" : "ios-marketing",
90+
"filename" : "icon-1024.png",
91+
"scale" : "1x"
92+
}
93+
],
94+
"info" : {
95+
"version" : 1,
96+
"author" : "xcode"
97+
}
98+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}

0 commit comments

Comments
 (0)