diff --git a/DevelopmentWorkflow.md b/DevelopmentWorkflow.md index 99c33f2d7..77f17fec5 100644 --- a/DevelopmentWorkflow.md +++ b/DevelopmentWorkflow.md @@ -2,13 +2,15 @@ -- [Running locally](#running-locally) +- [Development Workflow](#development-workflow) + - [Running locally](#running-locally) - [Prerequisites](#prerequisites) - - [Install dependencies](#install-dependencies) - - [Run the sample application (ng-sample)](#run-the-sample-application-ng-sample) -- [Running the tests](#running-the-tests) -- [Testing locally by running e2e tests](#testing-locally-by-running-e2e-tests) -- [Developer workflow](#developer-workflow) + - [Clone repository](#clone-repository) + - [Install dependencies of the compatibility package (nativescript-angular)](#install-dependencies-of-the-compatibility-package-nativescript-angular) + - [Install dependencies of the scoped package (@nativescript/angular)](#install-dependencies-of-the-scoped-package-nativescriptangular) + - [Run some of the e2e applications e.g. router-tab-view](#run-some-of-the-e2e-applications-eg-router-tab-view) + - [Running the tests](#running-the-tests) + - [Testing locally by running e2e tests](#testing-locally-by-running-e2e-tests) @@ -27,18 +29,25 @@ $ git clone git@github.com:NativeScript/nativescript-angular.git $ cd nativescript-angular ``` -### Install dependencies +### Install dependencies of the compatibility package (nativescript-angular) ``` $ cd nativescript-angular $ npm install ``` -### Run the sample application (ng-sample) +### Install dependencies of the scoped package (@nativescript/angular) + +``` +$ cd nativescript-angular-package +$ npm install +``` + +### Run some of the e2e applications e.g. router-tab-view Install NPM packages (use the local copy of `nativescript-angular`): ``` -$ cd ng-sample +$ cd e2e/router-tab-view $ npm install ``` @@ -49,6 +58,8 @@ $ tns run android $ tns run ios ``` +Make changes to `nativescript-angular` (in `./nativescript-angular-package` folder) or `@nativescript/angular` (in `./nativescript-angular` folder) and see them applied in the running app. + ## Running the tests Install the NPM dependencies (use the local copy of `nativescript-angular`): @@ -95,9 +106,4 @@ NOTE: The steps below describe how to run `renderer` tests, but the same approac ``` bash npm run e2e -- --runType capabilityName ``` - -## Developer workflow - -1. Open the `nativescript-angular` folder and start a typescript watcher in it `tsc -w`. -2. Make changes to the `test`, `ng-sample`, `e2e` app projects or in `nativescript-angular` folder. -3. Run the `tests`, `ng-sample` or `e2e` apps as shown above. + \ No newline at end of file diff --git a/README.md b/README.md index e56bd8557..b6d86f1a1 100644 --- a/README.md +++ b/README.md @@ -8,11 +8,12 @@ This repository contains the code for integration of NativeScript with Angular. -- [Watch the video explaining Angular and NativeScript](#watch-the-video-explaining-angular-and-nativescript) -- [Explore the examples](#explore-the-examples) -- [Contribute](#contribute) -- [Known issues](#known-issues) -- [Get Help](#get-help) +- [NativeScript Angular](#nativescript-angular) + - [Watch the video explaining Angular and NativeScript](#watch-the-video-explaining-angular-and-nativescript) + - [Explore the examples](#explore-the-examples) + - [Contribute](#contribute) + - [Known issues](#known-issues) + - [Get Help](#get-help) @@ -22,7 +23,7 @@ This repository contains the code for integration of NativeScript with Angular. ## Explore the examples -The `ng-sample` app is meant for testing stuff while developing the renderer code, and isn't the best example out there. You can take a look at these sample apps that use the published builds from npm: +The `e2e` apps are meant for testing stuff. You can take a look at these additional sample apps that use the published builds from npm: * [Hello world starter](https://github.com/NativeScript/nativescript-app-templates/tree/master/packages/template-hello-world-ng) * [Master-detail template](https://github.com/NativeScript/nativescript-app-templates/tree/master/packages/template-master-detail-ng) diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_active_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_active_items.png index ae1cff241..a8720d5b2 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_active_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_active_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_inactive_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_inactive_items.png index 0e9748881..e681c7b4d 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_inactive_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_inactive_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_remove_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_remove_items.png index 98e4fe0ac..a8720d5b2 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_remove_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_remove_items.png differ diff --git a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_reset_items.png b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_reset_items.png index a70855b75..c02a2a924 100644 Binary files a/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_reset_items.png and b/e2e/animation-examples/e2e/resources/images/ng4animations/Emulator-Api28-Google/add_reset_items.png differ diff --git a/nativescript-angular-package/package.json b/nativescript-angular-package/package.json index a75e62caf..5cf0f21a4 100644 --- a/nativescript-angular-package/package.json +++ b/nativescript-angular-package/package.json @@ -1,6 +1,6 @@ { "name": "nativescript-angular", - "version": "8.20.3", + "version": "8.20.4", "description": "An Angular renderer that lets you build mobile apps with NativeScript.", "homepage": "https://www.nativescript.org/", "bugs": "https://github.com/NativeScript/nativescript-angular/issues", diff --git a/nativescript-angular/package.json b/nativescript-angular/package.json index 279250572..47b89df37 100644 --- a/nativescript-angular/package.json +++ b/nativescript-angular/package.json @@ -1,6 +1,6 @@ { "name": "@nativescript/angular", - "version": "8.20.3", + "version": "8.20.4", "description": "An Angular renderer that lets you build mobile apps with NativeScript.", "homepage": "https://www.nativescript.org/", "bugs": "https://github.com/NativeScript/nativescript-angular/issues", diff --git a/ng-sample/.vscode/launch.json b/ng-sample/.vscode/launch.json deleted file mode 100644 index ee3fe690b..000000000 --- a/ng-sample/.vscode/launch.json +++ /dev/null @@ -1,58 +0,0 @@ -{ - // Use IntelliSense to learn about possible attributes. - // Hover to view descriptions of existing attributes. - // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 - "version": "0.2.0", - "configurations": [ - { - "name": "Launch on iOS", - "type": "nativescript", - "request": "launch", - "platform": "ios", - "appRoot": "${workspaceRoot}", - "sourceMaps": true, - "stopOnEntry": false, - "tnsArgs": [ - "--syncAllFiles" - ], - "watch": true - }, - { - "name": "Attach on iOS", - "type": "nativescript", - "request": "attach", - "platform": "ios", - "appRoot": "${workspaceRoot}", - "sourceMaps": true, - "tnsArgs": [ - "--syncAllFiles" - ], - "watch": false - }, - { - "name": "Launch on Android", - "type": "nativescript", - "request": "launch", - "platform": "android", - "appRoot": "${workspaceRoot}", - "sourceMaps": true, - "stopOnEntry": false, - "tnsArgs": [ - "--syncAllFiles" - ], - "watch": true - }, - { - "name": "Attach on Android", - "type": "nativescript", - "request": "attach", - "platform": "android", - "appRoot": "${workspaceRoot}", - "sourceMaps": true, - "tnsArgs": [ - "--syncAllFiles" - ], - "watch": false - } - ] -} \ No newline at end of file diff --git a/ng-sample/.vscode/settings.json b/ng-sample/.vscode/settings.json deleted file mode 100644 index 7cded05f7..000000000 --- a/ng-sample/.vscode/settings.json +++ /dev/null @@ -1,10 +0,0 @@ -// Place your settings in this file to overwrite default and user settings. -{ - "files.exclude": { - "**/*.js": { - "when": "$(basename).ts" - }, - "**/*.js.map": {}, - "platforms/**": {} - } -} \ No newline at end of file diff --git a/ng-sample/LICENSE b/ng-sample/LICENSE deleted file mode 100644 index a2ea2e632..000000000 --- a/ng-sample/LICENSE +++ /dev/null @@ -1,23 +0,0 @@ -Copyright (c) 2015, Telerik AD -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -1. Redistributions of source code must retain the above copyright notice, this -list of conditions and the following disclaimer. - -2. Redistributions in binary form must reproduce the above copyright notice, -this list of conditions and the following disclaimer in the documentation -and/or other materials provided with the distribution. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND -ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE -FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL -DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR -SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER -CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, -OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/ng-sample/README.md b/ng-sample/README.md deleted file mode 100644 index ee02f6eec..000000000 --- a/ng-sample/README.md +++ /dev/null @@ -1,8 +0,0 @@ -Getting the app to run: - -* `npm install` -* `tns platform add android` | `tns platform add ios` -* `grunt prepare` (run once to install tns-core-modules and angular2 packages) - -Changing and testing the app: -* `tns run android` | `tns run ios` diff --git a/ng-sample/app/App_Resources/Android/AndroidManifest.xml b/ng-sample/app/App_Resources/Android/AndroidManifest.xml deleted file mode 100644 index 8d827dc8d..000000000 --- a/ng-sample/app/App_Resources/Android/AndroidManifest.xml +++ /dev/null @@ -1,40 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ng-sample/app/App_Resources/Android/drawable-hdpi/icon.png b/ng-sample/app/App_Resources/Android/drawable-hdpi/icon.png deleted file mode 100755 index 1034356e2..000000000 Binary files a/ng-sample/app/App_Resources/Android/drawable-hdpi/icon.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/Android/drawable-ldpi/icon.png b/ng-sample/app/App_Resources/Android/drawable-ldpi/icon.png deleted file mode 100755 index ddfc17a71..000000000 Binary files a/ng-sample/app/App_Resources/Android/drawable-ldpi/icon.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/Android/drawable-mdpi/icon.png b/ng-sample/app/App_Resources/Android/drawable-mdpi/icon.png deleted file mode 100755 index 486e41091..000000000 Binary files a/ng-sample/app/App_Resources/Android/drawable-mdpi/icon.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/Android/drawable-nodpi/splashscreen.9.png b/ng-sample/app/App_Resources/Android/drawable-nodpi/splashscreen.9.png deleted file mode 100644 index bd53be2ec..000000000 Binary files a/ng-sample/app/App_Resources/Android/drawable-nodpi/splashscreen.9.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json deleted file mode 100644 index 5f5359340..000000000 --- a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json +++ /dev/null @@ -1,128 +0,0 @@ -{ - "images" : [ - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "icon-29.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "icon-29@2x.png", - "scale" : "2x" - }, - { - "size" : "29x29", - "idiom" : "iphone", - "filename" : "icon-29@3x.png", - "scale" : "3x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "icon-40@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "iphone", - "filename" : "icon-40@3x.png", - "scale" : "3x" - }, - { - "size" : "57x57", - "idiom" : "iphone", - "filename" : "icon-57.png", - "scale" : "1x" - }, - { - "size" : "57x57", - "idiom" : "iphone", - "filename" : "icon-57@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "icon-60@2x.png", - "scale" : "2x" - }, - { - "size" : "60x60", - "idiom" : "iphone", - "filename" : "icon-60@3x.png", - "scale" : "3x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "icon-29.png", - "scale" : "1x" - }, - { - "size" : "29x29", - "idiom" : "ipad", - "filename" : "icon-29@2x.png", - "scale" : "2x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "icon-40.png", - "scale" : "1x" - }, - { - "size" : "40x40", - "idiom" : "ipad", - "filename" : "icon-40@2x.png", - "scale" : "2x" - }, - { - "size" : "50x50", - "idiom" : "ipad", - "filename" : "icon-50.png", - "scale" : "1x" - }, - { - "size" : "50x50", - "idiom" : "ipad", - "filename" : "icon-50@2x.png", - "scale" : "2x" - }, - { - "size" : "72x72", - "idiom" : "ipad", - "filename" : "icon-72.png", - "scale" : "1x" - }, - { - "size" : "72x72", - "idiom" : "ipad", - "filename" : "icon-72@2x.png", - "scale" : "2x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "icon-76.png", - "scale" : "1x" - }, - { - "size" : "76x76", - "idiom" : "ipad", - "filename" : "icon-76@2x.png", - "scale" : "2x" - }, - { - "size" : "83.5x83.5", - "idiom" : "ipad", - "filename" : "icon-83.5@2x.png", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png deleted file mode 100644 index 9e15af09d..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png deleted file mode 100644 index 7b9e55537..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png deleted file mode 100644 index 76f61ec1f..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png deleted file mode 100644 index 15b06db11..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png deleted file mode 100644 index 585065f94..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png deleted file mode 100644 index a450c421d..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png deleted file mode 100755 index 4a62478f9..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png deleted file mode 100755 index 01ff7c16c..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-50@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png deleted file mode 100755 index beea81999..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png deleted file mode 100755 index c3dc7b035..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-57@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png deleted file mode 100644 index 457b6d94c..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png deleted file mode 100644 index fa5a6ac86..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png deleted file mode 100755 index 556bdd688..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png deleted file mode 100755 index 4f69cb25b..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-72@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png deleted file mode 100644 index 94abcf70d..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png deleted file mode 100644 index 2e71dd3a0..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png deleted file mode 100644 index 4abc9ec50..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/Contents.json b/ng-sample/app/App_Resources/iOS/Assets.xcassets/Contents.json deleted file mode 100644 index da4a164c9..000000000 --- a/ng-sample/app/App_Resources/iOS/Assets.xcassets/Contents.json +++ /dev/null @@ -1,6 +0,0 @@ -{ - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json deleted file mode 100644 index 4414bad08..000000000 --- a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json +++ /dev/null @@ -1,158 +0,0 @@ -{ - "images" : [ - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "736h", - "filename" : "Default-736h@3x.png", - "minimum-system-version" : "8.0", - "orientation" : "portrait", - "scale" : "3x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "736h", - "filename" : "Default-Landscape@3x.png", - "minimum-system-version" : "8.0", - "orientation" : "landscape", - "scale" : "3x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "667h", - "filename" : "Default-667h@2x.png", - "minimum-system-version" : "8.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default@2x.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "extent" : "full-screen", - "idiom" : "iphone", - "subtype" : "retina4", - "filename" : "Default-568h@2x.png", - "minimum-system-version" : "7.0", - "orientation" : "portrait", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "filename" : "Default-Portrait.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "filename" : "Default-Landscape.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "filename" : "Default-Portrait@2x.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "filename" : "Default-Landscape@2x.png", - "extent" : "full-screen", - "minimum-system-version" : "7.0", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default.png", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default@2x.png", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "iphone", - "filename" : "Default-568h@2x.png", - "extent" : "full-screen", - "subtype" : "retina4", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "filename" : "Default-Portrait.png", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "1x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "filename" : "Default-Landscape.png", - "extent" : "full-screen", - "scale" : "1x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "portrait", - "idiom" : "ipad", - "filename" : "Default-Portrait@2x.png", - "extent" : "full-screen", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "extent" : "to-status-bar", - "scale" : "2x" - }, - { - "orientation" : "landscape", - "idiom" : "ipad", - "filename" : "Default-Landscape@2x.png", - "extent" : "full-screen", - "scale" : "2x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png deleted file mode 100644 index d7f17fcd2..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png deleted file mode 100644 index b88415405..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png deleted file mode 100644 index faab4b631..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png deleted file mode 100644 index 3365ba3cd..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png deleted file mode 100644 index a44945c1a..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png deleted file mode 100644 index e6dca6269..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png deleted file mode 100644 index 1a5007962..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png deleted file mode 100644 index 73d8b920f..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png deleted file mode 100644 index 9f1f6ce3e..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png deleted file mode 100644 index 514fc5cde..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json deleted file mode 100644 index 4f4e9c506..000000000 --- a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchScreen-AspectFill.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchScreen-AspectFill@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png deleted file mode 100644 index c293f9c7a..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png deleted file mode 100644 index 233693a6e..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json deleted file mode 100644 index 23c0ffd7a..000000000 --- a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "images" : [ - { - "idiom" : "universal", - "filename" : "LaunchScreen-Center.png", - "scale" : "1x" - }, - { - "idiom" : "universal", - "filename" : "LaunchScreen-Center@2x.png", - "scale" : "2x" - }, - { - "idiom" : "universal", - "scale" : "3x" - } - ], - "info" : { - "version" : 1, - "author" : "xcode" - } -} \ No newline at end of file diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png deleted file mode 100644 index a5a775a2b..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png b/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png deleted file mode 100644 index 154c19343..000000000 Binary files a/ng-sample/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png and /dev/null differ diff --git a/ng-sample/app/App_Resources/iOS/Info.plist b/ng-sample/app/App_Resources/iOS/Info.plist deleted file mode 100644 index fe97598cf..000000000 --- a/ng-sample/app/App_Resources/iOS/Info.plist +++ /dev/null @@ -1,53 +0,0 @@ - - - - - CFBundleDevelopmentRegion - en - CFBundleDisplayName - ${PRODUCT_NAME} - CFBundleExecutable - ${EXECUTABLE_NAME} - CFBundleInfoDictionaryVersion - 6.0 - CFBundleName - ${PRODUCT_NAME} - CFBundlePackageType - APPL - CFBundleShortVersionString - 1.0 - CFBundleSignature - ???? - CFBundleVersion - 1.0 - LSRequiresIPhoneOS - - UILaunchStoryboardName - LaunchScreen - UIRequiresFullScreen - - UIRequiredDeviceCapabilities - - armv7 - - UISupportedInterfaceOrientations - - UIInterfaceOrientationPortrait - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - UISupportedInterfaceOrientations~ipad - - UIInterfaceOrientationPortrait - UIInterfaceOrientationPortraitUpsideDown - UIInterfaceOrientationLandscapeLeft - UIInterfaceOrientationLandscapeRight - - NSAppTransportSecurity - - - NSAllowsArbitraryLoads - - - - diff --git a/ng-sample/app/App_Resources/iOS/LaunchScreen.storyboard b/ng-sample/app/App_Resources/iOS/LaunchScreen.storyboard deleted file mode 100644 index 2ad9471e1..000000000 --- a/ng-sample/app/App_Resources/iOS/LaunchScreen.storyboard +++ /dev/null @@ -1,49 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/ng-sample/app/App_Resources/iOS/build.xcconfig b/ng-sample/app/App_Resources/iOS/build.xcconfig deleted file mode 100644 index 056205556..000000000 --- a/ng-sample/app/App_Resources/iOS/build.xcconfig +++ /dev/null @@ -1,5 +0,0 @@ -// You can add custom settings here -// for example you can uncomment the following line to force distribution code signing -// CODE_SIGN_IDENTITY = iPhone Distribution -ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; -ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage; diff --git a/ng-sample/app/app.css b/ng-sample/app/app.css deleted file mode 100644 index a2f267c8c..000000000 --- a/ng-sample/app/app.css +++ /dev/null @@ -1,47 +0,0 @@ -.title { - font-size: 30; - horizontal-align: center; - margin:20; - color: red; -} - -.invalid { - color: red; -} - -.valid { - color: green; -} - -button { - horizontal-align: center; -} - -.odd { - background-color: hotpink -} - -.even { - background-color: lightseagreen; -} - -.btn { - horizontal-align: stretch; - text-align: center; - color:#3F60F9; -} - -.btn-primary { - background-color: #3F60F9; - color: #fff; - padding: 10px 20px; -} - -.input { - margin: 30px; - color:#444; -} - -.test { - color: green; -} \ No newline at end of file diff --git a/ng-sample/app/app.ts b/ng-sample/app/app.ts deleted file mode 100644 index b3a6ccad9..000000000 --- a/ng-sample/app/app.ts +++ /dev/null @@ -1,192 +0,0 @@ -import { NativeScriptModule } from "nativescript-angular/nativescript.module"; -import { platformNativeScriptDynamic } from "nativescript-angular/platform"; -import { NativeScriptAnimationsModule } from "nativescript-angular/animations"; -import { onAfterLivesync, onBeforeLivesync } from "nativescript-angular/platform-common"; -import { NgModule, ErrorHandler } from "@angular/core"; -import { DOCUMENT } from "@angular/common"; -import { Router } from "@angular/router"; -import { NativeScriptRouterModule } from "nativescript-angular/router"; -import { NativeScriptFormsModule } from "nativescript-angular/forms"; -import { NativeScriptHttpClientModule } from "nativescript-angular/http-client"; - -import { - rendererTraceCategory, - routerTraceCategory, - listViewTraceCategory, - animationsTraceCategory, - viewUtilCategory, - routeReuseStrategyTraceCategory, - bootstrapCategory, -} from "nativescript-angular/trace"; -import { PAGE_FACTORY, PageFactory, PageFactoryOptions } from "nativescript-angular/platform-providers"; -import { Page } from "tns-core-modules/ui/page"; -import { Color } from "tns-core-modules/color"; -import { log } from "tns-core-modules/profiling"; - -import { setCategories, addCategories, enable, categories } from "tns-core-modules/trace"; -addCategories(bootstrapCategory); -// addCategories(rendererTraceCategory); -// addCategories(routerTraceCategory); -// addCategories(categories.ViewHierarchy); -// addCategories(categories.Layout); -// setCategories(routerTraceCategory); -// setCategories(listViewTraceCategory); -// setCategories(`${routeReuseStrategyTraceCategory}, ${routerTraceCategory}, ${viewUtilCategory}`); -enable(); - -import { RendererTest } from "./examples/renderer-test"; -import { TabViewTest } from "./examples/tab-view/tab-view-test"; -import { Benchmark } from "./performance/benchmark"; -import { ListTest } from "./examples/list/list-test"; -import { ListTemplateSelectorTest } from "./examples/list/template-selector"; -import { ListTestAsync, ListTestFilterAsync } from "./examples/list/list-test-async"; -import { ImageTest } from "./examples/image/image-test"; -import { HttpClientTest } from "./examples/http-client/http-client-test"; -import { ActionBarTest } from "./examples/action-bar/action-bar-test"; -import { PlatfromDirectivesTest } from "./examples/platform-directives/platform-directives-test"; -import { LivesyncApp } from "./examples/livesync-test/livesync-test-app"; - -// modal -import { ModalTest } from "./examples/modal/modal-test"; -import { ModalNestedTest } from "./examples/modal/modal-nested-test"; -import { ModalRouterOutletTest } from "./examples/modal/modal-router-outlet-test"; -import { ModalPageRouterOutletTest } from "./examples/modal/modal-page-router-outlet-test"; - -// new router -import { RouterOutletAppComponent } from "./examples/router/router-outlet-test"; -import { PageRouterOutletAppComponent } from "./examples/router/page-router-outlet-test"; -import { PageRouterOutletNestedAppComponent } from "./examples/router/page-router-outlet-nested-test"; -import { ClearHistoryAppComponent } from "./examples/router/clear-history-test"; -import { LoginAppComponent } from "./examples/router/login-test"; - -// animations -import { AnimationEnterLeaveTest } from "./examples/animation/animation-enter-leave-test"; -import { AnimationKeyframesTest } from "./examples/animation/animation-keyframes-test"; -import { AnimationNgClassTest } from "./examples/animation/animation-ngclass-test"; -import { AnimationStatesTest } from "./examples/animation/animation-states-test"; -import { AnimationStatesMultiTest } from "./examples/animation/animation-states-multi-test"; - -@NgModule({ - declarations: [], - imports: [ - NativeScriptModule, - NativeScriptFormsModule, - NativeScriptHttpClientModule, - NativeScriptRouterModule, - ], - exports: [ - NativeScriptModule, - NativeScriptFormsModule, - NativeScriptHttpClientModule, - NativeScriptRouterModule, - ], - providers: [], -}) -class ExampleModule { } - -function makeExampleModule(componentType) { - let imports: any[] = [NativeScriptAnimationsModule, ExampleModule]; - if (componentType.routes) { - imports.push(NativeScriptRouterModule.forRoot(componentType.routes)); - } - let exports: any[] = []; - if (componentType.exports) { - exports = componentType.exports; - } - let entries = []; - if (componentType.entries) { - entries = componentType.entries; - } - entries.push(componentType); - - let providers = [{ provide: ErrorHandler, useClass: MyErrorHandler }]; - if (componentType.providers) { - providers = [...providers, componentType.providers]; - } - - @NgModule({ - bootstrap: [componentType], - imports, - entryComponents: entries, - declarations: [...entries, ...exports], - providers, - exports, - }) - class ExampleModuleForComponent { } - - return ExampleModuleForComponent; -} - -const customPageFactoryProvider = { - provide: PAGE_FACTORY, - useValue: (opts: PageFactoryOptions) => { - const page = new Page(); - page.backgroundColor = opts.isModal ? new Color("lightblue") : new Color("lightgreen"); - return page; - }, -}; - -export class MyErrorHandler implements ErrorHandler { - handleError(error) { - console.log("### ErrorHandler Error: " + error.toString()); - console.log("### ErrorHandler Stack: " + error.stack); - } -} - -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(RendererTest)); -// platformNativeScriptDynamic(undefined, [customPageFactoryProvider]).bootstrapModule(makeExampleModule(RendererTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(TabViewTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(Benchmark)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ListTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ListTemplateSelectorTest)); -platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ListTestAsync)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ImageTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ModalTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(HttpClientTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(PlatfromDirectivesTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ActionBarTest)); - -// router -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(RouterOutletAppComponent)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(PageRouterOutletAppComponent)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(PageRouterOutletNestedAppComponent)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ClearHistoryAppComponent)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(LoginAppComponent)); - -// animations -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(AnimationStatesTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(AnimationStatesMultiTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(AnimationNgClassTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(AnimationKeyframesTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(AnimationEnterLeaveTest)); - -// Livesync test -let cachedUrl: string; -onBeforeLivesync.subscribe(moduleRef => { - console.log("#### onBeforeLivesync"); - // if (moduleRef) { - // const router = moduleRef.injector.get(Router); - // cachedUrl = router.url; - // log("-------> Caching URL: " + cachedUrl); - // } -}); - -onAfterLivesync.subscribe(({ moduleRef, error }) => { - console.log(`#### onAfterLivesync moduleRef: ${moduleRef} error: ${error}`); - // if (moduleRef) { - // const router = moduleRef.injector.get(Router); - // router.events.subscribe(e => log(e.toString())); - // if (router && cachedUrl) { - // setTimeout(() => { - // router.navigateByUrl(cachedUrl); - // }, 0); - // } - // } -}); - -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(LivesyncApp)); -// console.log("APP RESTART!!!! !!!"); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ModalTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ModalNestedTest)); -// platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ModalRouterOutletTest)); -platformNativeScriptDynamic().bootstrapModule(makeExampleModule(ModalPageRouterOutletTest)); diff --git a/ng-sample/app/examples/action-bar/action-bar-test.ts b/ng-sample/app/examples/action-bar/action-bar-test.ts deleted file mode 100644 index 2b2111f53..000000000 --- a/ng-sample/app/examples/action-bar/action-bar-test.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { Component } from "@angular/core"; -import { Page } from "tns-core-modules/ui/page"; - -@Component({ - selector: "first", - template: ` - - - - - - - - - - `, -}) -class FirstComponent { - public show: boolean = true; - onTap() { - console.log("FirstComponent.Tapped!"); - } - onShare() { - console.log("Share button tapped!"); - } -} - - -@Component({ - selector: "nested-component", - template: ` - - - - - - - - - - `, -}) -class NestedComponent { - public show: boolean = true; - - onTap() { - console.log("NestedComponent.Tapped!"); - } -} - -@Component({ - selector: "second", - template: ` - - - - - - - - - - `, -}) -class SecondComponent { - onTap() { - console.log("SecondComponent.Tapped!"); - } -} - -@Component({ - selector: "action-bar-test", - template: ` - - - - ` -}) -export class ActionBarTest { - static routes = [ - { path: "", component: FirstComponent }, - { path: "second", component: SecondComponent }, - ]; - - static entries = [ - FirstComponent, - SecondComponent, - ]; -} diff --git a/ng-sample/app/examples/animation/animation-enter-leave-test.css b/ng-sample/app/examples/animation/animation-enter-leave-test.css deleted file mode 100644 index 3690e8875..000000000 --- a/ng-sample/app/examples/animation/animation-enter-leave-test.css +++ /dev/null @@ -1,6 +0,0 @@ -.button { - background-color: silver; - color: black; - padding: 10; - margin: 10; -} \ No newline at end of file diff --git a/ng-sample/app/examples/animation/animation-enter-leave-test.html b/ng-sample/app/examples/animation/animation-enter-leave-test.html deleted file mode 100644 index b22c5a38d..000000000 --- a/ng-sample/app/examples/animation/animation-enter-leave-test.html +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - - - - diff --git a/ng-sample/app/examples/animation/animation-enter-leave-test.ts b/ng-sample/app/examples/animation/animation-enter-leave-test.ts deleted file mode 100644 index 3f4511ddc..000000000 --- a/ng-sample/app/examples/animation/animation-enter-leave-test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Component } from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; - -@Component({ - selector: "animation-enter-leave", - templateUrl: "./examples/animation/animation-enter-leave-test.html", - styleUrls: [ "./examples/animation/animation-enter-leave-test.css" ], - animations: [ - trigger("state", [ - state("in", style({ - "background-color": "red", - "opacity": 1, - })), - - state("void", style({ - "background-color": "white", - "opacity": 0, - })), - transition("void => *", [ animate("600ms ease-out") ]), - transition("* => void", [ animate("600ms ease-out")]) - ]) - ] -}) -export class AnimationEnterLeaveTest { - - public items: Array; - - constructor() { - this.items = []; - for (let i = 0; i < 3; i++) { - this.items.push("Item " + i); - } - } - - onAddTap() { - this.items.push("Item " + (this.items.length + 1)); - } - - onRemoveAllTap() { - this.items = []; - } - - onItemTap(event) { - let index = this.items.indexOf(event.object.text); - this.items.splice(index, 1); - } -} - diff --git a/ng-sample/app/examples/animation/animation-keyframes-test.ts b/ng-sample/app/examples/animation/animation-keyframes-test.ts deleted file mode 100644 index 005542546..000000000 --- a/ng-sample/app/examples/animation/animation-keyframes-test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Component } from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition, - keyframes, -} from '@angular/animations'; - -@Component({ - selector: "animation-states", - template: ` - - - `, - animations: [ - trigger("state", [ - state("active", style({ transform: "translateX(0)", opacity: 1 })), - state("inactive", style({ transform: "translateX(0)", opacity: 0.2 })), - transition("inactive => active", [ - animate(300, keyframes([ - style({opacity: 0.2, transform: "translateX(-100),translateY(100)", offset: 0}), - style({opacity: 1, transform: "translateX(15)", offset: 0.3}), - style({opacity: 1, transform: "translateX(0)", offset: 1.0}) - ])) - ]), - transition("active => inactive", [ - animate(300, keyframes([ - style({opacity: 1, transform: "translateX(0)", offset: 0}), - style({opacity: 1, transform: "translateX(-15)", offset: 0.7}), - style({opacity: 0.2, transform: "translateX(100)", offset: 1.0}) - ])) - ]) - ]) - ] -}) -export class AnimationKeyframesTest { - - isOn = false; - - onTap() { - this.isOn = !this.isOn; - } -} - diff --git a/ng-sample/app/examples/animation/animation-ngclass-test.css b/ng-sample/app/examples/animation/animation-ngclass-test.css deleted file mode 100644 index aafa49d8d..000000000 --- a/ng-sample/app/examples/animation/animation-ngclass-test.css +++ /dev/null @@ -1,17 +0,0 @@ -.off { - background-color: white; - padding: 10 10 10 10; -} - -.on { - animation-name: toggle; - animation-duration: 1s; - animation-fill-mode: forwards; - padding: 10 10 10 10; -} - -@keyframes toggle { - from { background-color: white; } - 50% { background-color: yellow; } - to { background-color: green; } -} diff --git a/ng-sample/app/examples/animation/animation-ngclass-test.html b/ng-sample/app/examples/animation/animation-ngclass-test.html deleted file mode 100644 index 65bbd8864..000000000 --- a/ng-sample/app/examples/animation/animation-ngclass-test.html +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/ng-sample/app/examples/animation/animation-ngclass-test.ts b/ng-sample/app/examples/animation/animation-ngclass-test.ts deleted file mode 100644 index 9c9ccf6ed..000000000 --- a/ng-sample/app/examples/animation/animation-ngclass-test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "main-component", - templateUrl: "./examples/animation/animation-ngclass-test.html", - styleUrls: [ "./examples/animation/animation-ngclass-test.css" ] -}) -export class AnimationNgClassTest { - - isOn = false; - text = "Normal"; - - onTap() { - this.isOn = !this.isOn; - this.text = this.isOn ? "Toggled" : "Normal"; - } -} diff --git a/ng-sample/app/examples/animation/animation-states-multi-test.ts b/ng-sample/app/examples/animation/animation-states-multi-test.ts deleted file mode 100644 index 7b96906e4..000000000 --- a/ng-sample/app/examples/animation/animation-states-multi-test.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { Component } from '@angular/core'; -import { - trigger, - state, - style, - animate, - transition -} from '@angular/animations'; - -@Component({ - selector: "animation-states-multi", - template: ` - - - - `, - animations: [ - trigger('heroState', [ - state('inactive', style({ - backgroundColor: 'green', - transform: 'scale(1)' - })), - state('active', style({ - backgroundColor: 'red', - transform: 'scale(2)' - })), - - transition('inactive => active', animate('100ms ease-in')), - transition('active => inactive', animate('100ms ease-out')), - ]) - ] -}) -export class AnimationStatesMultiTest { - heroes = [ - { - name: "Windstorm", - state: "inactive" - }, - { - name: "Batman", - state: "active" - }, - ]; - - toggleState(hero) { - hero.state = hero.state === "active" ? "inactive" : "active"; - } -} - - diff --git a/ng-sample/app/examples/animation/animation-states-test.ts b/ng-sample/app/examples/animation/animation-states-test.ts deleted file mode 100644 index 15cd88f20..000000000 --- a/ng-sample/app/examples/animation/animation-states-test.ts +++ /dev/null @@ -1,41 +0,0 @@ -import { Component } from "@angular/core"; -import { - trigger, - style, - animate, - state, - transition, -} from "@angular/animations"; - -@Component({ - selector: "animation-states", - template: ` - - - `, - animations: [ - trigger("state", [ - - state("inactive", style({ - backgroundColor: "red", - transform: "scale(0.7)", - })), - state("active", style({ - backgroundColor: "green", - transform: "scale(2)", - })), - - transition("* => active", [ animate("600ms ease-out") ]), - transition("* => inactive", [ animate("600ms ease-out") ]), - - ]) - ] -}) -export class AnimationStatesTest { - isOn = false; - - onTap() { - this.isOn = !this.isOn; - } -} - diff --git a/ng-sample/app/examples/http-client/data.json b/ng-sample/app/examples/http-client/data.json deleted file mode 100644 index 52d4169d4..000000000 --- a/ng-sample/app/examples/http-client/data.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "results": [ - { - "title": "Test", - "description": "Testing Http local and remote." - } - ] -} diff --git a/ng-sample/app/examples/http-client/http-client-test.ts b/ng-sample/app/examples/http-client/http-client-test.ts deleted file mode 100644 index dc0282ced..000000000 --- a/ng-sample/app/examples/http-client/http-client-test.ts +++ /dev/null @@ -1,123 +0,0 @@ -import { Component, Inject, Injectable } from "@angular/core"; -import { - HttpClient, HTTP_INTERCEPTORS, HttpEventType, HttpErrorResponse, - HttpEvent, HttpInterceptor, HttpHandler, HttpRequest -} from "@angular/common/http"; -import { Observable } from "rxjs"; -import { tap } from "rxjs/operators"; - -@Injectable() -export class CustomInterceptor implements HttpInterceptor { - intercept(req: HttpRequest, next: HttpHandler): Observable> { - console.log(`[CustomInterceptor] intercept url: ${req.url}`); - - return next.handle(req).pipe( - tap(event => { - console.log(`[CustomInterceptor] handled type: ${HttpEventType[event.type]} url: ${req.url}`); - }) - ); - } -} - -interface DataResults { - results: Array; -} - -interface LocalData { - title: string; - description: string; -} - -interface RemoteData { - name: { first: string }; - email: string; -} - -@Component({ - selector: "http-client-test", - template: ` - - - - - - - - - - - - `, - styles: [` - #title { margin-top:20; } - Label { margin: 5 20; } - `], -}) -export class HttpClientTest { - static providers = [ - { - provide: HTTP_INTERCEPTORS, - useClass: CustomInterceptor, - multi: true, - } - ]; - - public title: string; - public description: string; - public error: string; - - constructor(private http: HttpClient) { - } - - public loadLocal() { - this.http.get>("~/examples/http-client/data.json") - .subscribe((response) => { - let user = response.results[0]; - this.onSuccess(user.title, user.description); - }, (error) => { - this.onError(error); - }); - } - - public loadRemote() { - this.http.get>(`https://randomuser.me/api/?results=1&nat=us`) - .subscribe((response) => { - const user = response.results[0]; - this.onSuccess(user.email, user.name.first); - }, (error) => { - this.onError(error); - }); - } - - public loadNonexistentLocal() { - this.http.get>("~/non/existent/app/folder/data.json") - .subscribe((response) => { - this.onSuccess("strange?!", ""); - }, (error) => { - this.onError(error); - }); - } - - public loadNonexistentRemote() { - this.http.get>("https://google.com/non/existent/url/data.json") - .subscribe((response) => { - this.onSuccess("strange?!", ""); - }, (error) => { - this.onError(error); - }); - } - - private onSuccess(title: string, description: string) { - this.title = title; - this.description = description; - this.error = ""; - } - - private onError(error: HttpErrorResponse) { - console.log("onError " + error); - console.dir(error); - this.title = ""; - this.description = ""; - this.error = error.message; - } -} diff --git a/ng-sample/app/examples/image/image-test.ts b/ng-sample/app/examples/image/image-test.ts deleted file mode 100644 index 8df56a6e6..000000000 --- a/ng-sample/app/examples/image/image-test.ts +++ /dev/null @@ -1,64 +0,0 @@ -import { Component } from "@angular/core"; - -/* IMPORTANT -In order to test out the full image example, -to fix the App Transport Security error in iOS 9, -you will need to follow this after adding the iOS platform: - -https://blog.nraboy.com/2015/12/fix-ios-9-app-transport-security-issues-in-nativescript/ -*/ - -@Component({ - selector: "image-test", - template: ` - - - - - - - - - - - ` -}) -export class ImageTest { - - public currentImage: string; - private images: Array = [ - "res://300x300.jpg", - "~/examples/image/img/Default.png", - "http://www.codeproject.com/KB/mobile/883465/NativeScript.png" - ]; - private cnt: number = 0; - - constructor() { - this.currentImage = this.images[this.cnt]; - } - - changeImage(direction: number) { - if (direction > 0) { - this.cnt++; - } else { - this.cnt--; - } - if (this.cnt === this.images.length) { - // start over - this.cnt = 0; - } else if (this.cnt < 0) { - // go to end - this.cnt = this.images.length - 1; - } - this.currentImage = this.images[this.cnt]; - } - - addImage(e: any, name: string): void { - if (name.indexOf("http") === -1) { - alert(`Must be a valid url to an image starting with 'http'!`); - } else { - this.images.push(name); - this.currentImage = this.images[this.images.length - 1]; - } - } -} diff --git a/ng-sample/app/examples/image/img/Default.png b/ng-sample/app/examples/image/img/Default.png deleted file mode 100755 index 9f1f6ce3e..000000000 Binary files a/ng-sample/app/examples/image/img/Default.png and /dev/null differ diff --git a/ng-sample/app/examples/list/data.service.ts b/ng-sample/app/examples/list/data.service.ts deleted file mode 100644 index 169dd2d9a..000000000 --- a/ng-sample/app/examples/list/data.service.ts +++ /dev/null @@ -1,55 +0,0 @@ -import { Injectable } from "@angular/core"; -import { BehaviorSubject } from "rxjs"; - -export class DataItem { - constructor(public id: number, public name: string) { } -} - -@Injectable() -export class DataService { - private _intervalId; - private _counter = 0; - private _currentItems: Array; - - public items$: BehaviorSubject>; - - constructor() { - this._currentItems = []; - for (let i = 0; i < 3; i++) { - this.appendItem(); - } - - this.items$ = new BehaviorSubject(this._currentItems); - } - - public startAsyncUpdates() { - if (this._intervalId) { - throw new Error("Updates are already started"); - } - - this._intervalId = setInterval(() => { - this.appendItem(); - this.publishUpdates(); - }, 200); - - } - - public stopAsyncUpdates() { - if (!this._intervalId) { - throw new Error("Updates are not started"); - } - - clearInterval(this._intervalId); - this._intervalId = undefined; - } - - private publishUpdates() { - this.items$.next([...this._currentItems]); - } - - private appendItem() { - this._currentItems.push(new DataItem(this._counter, "data item " + this._counter)); - this._counter++; - } -} - diff --git a/ng-sample/app/examples/list/list-test-async.ts b/ng-sample/app/examples/list/list-test-async.ts deleted file mode 100644 index b4a8a7215..000000000 --- a/ng-sample/app/examples/list/list-test-async.ts +++ /dev/null @@ -1,120 +0,0 @@ -import { Component, ChangeDetectionStrategy } from "@angular/core"; -import { DataItem, DataService } from "./data.service"; -import { Observable, BehaviorSubject } from "rxjs"; -import { combineLatest } from "rxjs/operators"; - -@Component({ - selector: "list-test-async", - styleUrls: ["./styles.css"], - providers: [DataService], - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - - - - - - - - - - - - - - - - - ` -}) -export class ListTestAsync { - public isUpdating: boolean = false; - constructor(private service: DataService) { - } - - public onItemTap(args) { - console.log("--> ItemTapped: " + args.index); - } - - public toggleAsyncUpdates() { - if (this.isUpdating) { - this.service.stopAsyncUpdates(); - } else { - this.service.startAsyncUpdates(); - } - - this.isUpdating = !this.isUpdating; - } -} - -@Component({ - selector: "list-test-async-filter", - styleUrls: ["./styles.css"], - providers: [DataService], - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - - - - - - - - - - - - - - - - - - - - ` -}) -export class ListTestFilterAsync { - public isUpdating: boolean = false; - public filteredItems$: Observable>; - private filter$ = new BehaviorSubject(false); - - constructor(private service: DataService) { - this.filteredItems$ = this.service.items$.pipe( - combineLatest(this.filter$, (data, filter) => { - return filter ? data.filter(v => v.id % 2 === 0) : data; - })); - } - - public onItemTap(args) { - console.log("--> ItemTapped: " + args.index); - } - - public toggleAsyncUpdates() { - if (this.isUpdating) { - this.service.stopAsyncUpdates(); - } else { - this.service.startAsyncUpdates(); - } - - this.isUpdating = !this.isUpdating; - } - - public toggleFilter() { - this.filter$.next(!this.filter$.value); - } -} diff --git a/ng-sample/app/examples/list/list-test.ts b/ng-sample/app/examples/list/list-test.ts deleted file mode 100644 index db2cfe257..000000000 --- a/ng-sample/app/examples/list/list-test.ts +++ /dev/null @@ -1,91 +0,0 @@ -import {Component, Input, WrappedValue, ChangeDetectionStrategy, AfterViewChecked, DoCheck} from "@angular/core"; -import {Label} from "tns-core-modules/ui/label"; -import {ObservableArray} from "tns-core-modules/data/observable-array"; - -class DataItem { - constructor(public id: number, public name: string) { } -} - -@Component({ - selector: "item-component", - styleUrls: ["./styles.css"], - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - ` -}) -export class ItemComponent implements AfterViewChecked, DoCheck { - @Input() data: DataItem; - @Input() odd: boolean; - @Input() even: boolean; - @Input() index: boolean; - constructor() { } - - ngDoCheck() { - console.log("ItemComponent.ngDoCheck: " + this.data.id); - } - - ngAfterViewChecked() { - console.log("ItemComponent.ngAfterViewChecked: " + this.data.id); - } -} - -@Component({ - selector: "list-test", - styleUrls: ["./styles.css"], - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - - - - - - - - ` - // TEMPLATE WITH COMPONENT - // - // - // - - // IN-PLACE TEMPLATE - // - // - // - // - // - // -}) -export class ListTest { - public myItems: Array; - private counter: number; - - constructor() { - this.myItems = []; - this.counter = 0; - for (let i = 0; i < 100; i++) { - this.myItems.push(new DataItem(i, "data item " + i)); - this.counter = i; - } - } - - public onItemTap(args) { - console.log("--> ItemTapped: " + args.index); - } - - addItem() { - this.counter++; - this.myItems.push(new DataItem(this.counter, "data item " + this.counter)); - } - - public static entries = [ - ItemComponent - ]; -} diff --git a/ng-sample/app/examples/list/styles.css b/ng-sample/app/examples/list/styles.css deleted file mode 100644 index 4d80a73c0..000000000 --- a/ng-sample/app/examples/list/styles.css +++ /dev/null @@ -1,28 +0,0 @@ -button { - margin: 0 10; -} - -.odd { - background-color: cornflowerblue; -} - -.even { - background-color: lightgreen; -} - -.list-title { - font-size: 20; - text-align: center; -} - -.header { - background-color: cornflowerblue; - font-size: 28; - color: black; - text-align: center; -} - -.item { - background-color: lightgreen; - color: darkslategrey; -} \ No newline at end of file diff --git a/ng-sample/app/examples/list/template-selector.ts b/ng-sample/app/examples/list/template-selector.ts deleted file mode 100644 index 3cd9ec38f..000000000 --- a/ng-sample/app/examples/list/template-selector.ts +++ /dev/null @@ -1,88 +0,0 @@ -import { Component, Input, ChangeDetectionStrategy, DoCheck } from "@angular/core"; - -class DataItem { - private static count = 0; - public id: number; - constructor(public name: string, public isHeader: boolean) { - this.id = DataItem.count++; - } -} - -@Component({ - selector: "item-component", - styleUrls: ["./styles.css"], - changeDetection: ChangeDetectionStrategy.OnPush, - template: `` -}) -export class ItemComponent implements DoCheck { - @Input() data: DataItem; - ngDoCheck() { console.log("ItemComponent.ngDoCheck: " + this.data.id); } -} - -@Component({ - selector: "header-component", - styleUrls: ["./styles.css"], - changeDetection: ChangeDetectionStrategy.OnPush, - template: `` -}) -export class HeaderComponent implements DoCheck { - @Input() data: DataItem; - ngDoCheck() { console.log("HeaderComponent.ngDoCheck: " + this.data.id); } -} - -@Component({ - selector: "list-test", - styleUrls: ["./styles.css"], - changeDetection: ChangeDetectionStrategy.OnPush, - template: ` - - - - - - - - - - - - - - - - - ` -}) -export class ListTemplateSelectorTest { - public myItems: Array; - - public templateSelector = (item: DataItem, index: number, items: any) => { - return item.isHeader ? "header" : "item"; - } - constructor() { - this.myItems = []; - for (let headerIndex = 0; headerIndex < 10; headerIndex++) { - this.myItems.push(new DataItem("Header " + headerIndex, true)); - - for (let i = 1; i < 10; i++) { - this.myItems.push(new DataItem(`item ${headerIndex}.${i}`, false)); - } - } - } - - public onItemTap(args) { - console.log("--> ItemTapped: " + args.index); - } - - addItem() { - this.myItems.push(new DataItem("added item", false)); - } - - public static entries = [ - ItemComponent, - HeaderComponent - ]; -} diff --git a/ng-sample/app/examples/livesync-test/first/first.component.css b/ng-sample/app/examples/livesync-test/first/first.component.css deleted file mode 100644 index b9836f40a..000000000 --- a/ng-sample/app/examples/livesync-test/first/first.component.css +++ /dev/null @@ -1,14 +0,0 @@ -.title { - font-size: 30; - margin: 16; - color: darkblue; -} - -button { - horizontal-align: center; - margin: 10; -} - -stack-layout { - background-color: lightgreen; -} diff --git a/ng-sample/app/examples/livesync-test/first/first.component.ts b/ng-sample/app/examples/livesync-test/first/first.component.ts deleted file mode 100644 index f8c2c584c..000000000 --- a/ng-sample/app/examples/livesync-test/first/first.component.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "first", - styleUrls: ["examples/livesync-test/first/first.component.css"], - templateUrl: "examples/livesync-test/first/first.component.xml" -}) -export class FirstComponent { -} diff --git a/ng-sample/app/examples/livesync-test/first/first.component.xml b/ng-sample/app/examples/livesync-test/first/first.component.xml deleted file mode 100644 index 06f432476..000000000 --- a/ng-sample/app/examples/livesync-test/first/first.component.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - diff --git a/ng-sample/app/examples/livesync-test/livesync-test-app.ts b/ng-sample/app/examples/livesync-test/livesync-test-app.ts deleted file mode 100644 index 1f7bf9174..000000000 --- a/ng-sample/app/examples/livesync-test/livesync-test-app.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Component } from "@angular/core"; - -import {FirstComponent} from "./first/first.component"; -import {SecondComponent} from "./second/second.component"; - -@Component({ - selector: "livesync-app-test", - template: `` -}) -export class LivesyncApp { - static routes = [ - { path: "", component: FirstComponent }, - { path: "second", component: SecondComponent }, - ]; - - static entries = [ - FirstComponent, - SecondComponent, - ]; -} diff --git a/ng-sample/app/examples/livesync-test/second/second.component.css b/ng-sample/app/examples/livesync-test/second/second.component.css deleted file mode 100644 index b33614d96..000000000 --- a/ng-sample/app/examples/livesync-test/second/second.component.css +++ /dev/null @@ -1,14 +0,0 @@ -.title { - font-size: 30; - margin: 16; - color: darkgreen; -} - -button { - horizontal-align: center; - margin: 10; -} - -stack-layout { - background-color: lightblue; -} diff --git a/ng-sample/app/examples/livesync-test/second/second.component.ts b/ng-sample/app/examples/livesync-test/second/second.component.ts deleted file mode 100644 index 2091381e4..000000000 --- a/ng-sample/app/examples/livesync-test/second/second.component.ts +++ /dev/null @@ -1,9 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "second", - styleUrls: ["examples/livesync-test/second/second.component.css"], - templateUrl: "examples/livesync-test/second/second.component.xml" -}) -export class SecondComponent { -} diff --git a/ng-sample/app/examples/livesync-test/second/second.component.xml b/ng-sample/app/examples/livesync-test/second/second.component.xml deleted file mode 100644 index 182f795a1..000000000 --- a/ng-sample/app/examples/livesync-test/second/second.component.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/ng-sample/app/examples/modal/modal-content.ts b/ng-sample/app/examples/modal/modal-content.ts deleted file mode 100644 index 2e2a92515..000000000 --- a/ng-sample/app/examples/modal/modal-content.ts +++ /dev/null @@ -1,37 +0,0 @@ -import { Component, Input } from "@angular/core"; -import { ModalDialogParams } from "nativescript-angular/directives/dialogs"; - -@Component({ - selector: "modal-content", - template: ` - - - - - - - - ` -}) -export class ModalContent { - - @Input() public prompt: string; - - constructor(private params: ModalDialogParams) { - console.log("ModalContent.constructor: " + JSON.stringify(params)); - this.prompt = params.context.promptMsg; - } - - public close(res: string) { - this.params.closeCallback(res); - } - - ngOnInit() { - console.log("ModalContent.ngOnInit"); - } - - ngOnDestroy() { - console.log("ModalContent.ngOnDestroy"); - } - -} diff --git a/ng-sample/app/examples/modal/modal-nested-test.ts b/ng-sample/app/examples/modal/modal-nested-test.ts deleted file mode 100644 index 26f7f34cb..000000000 --- a/ng-sample/app/examples/modal/modal-nested-test.ts +++ /dev/null @@ -1,23 +0,0 @@ -import { Component, ViewContainerRef } from "@angular/core"; -import * as dialogs from "tns-core-modules/ui/dialogs"; -import { ModalDialogService, ModalDialogOptions } from "nativescript-angular/directives/dialogs"; -import { ModalContent } from "./modal-content"; -import { ModalTest } from "./modal-test"; - -@Component({ - selector: "modal-nested-test", - template: ` - - ` -}) -export class ModalNestedTest { - - static entries = [ - ModalContent - ]; - - static exports = [ - ModalTest - ]; - -} \ No newline at end of file diff --git a/ng-sample/app/examples/modal/modal-page-router-outlet-test.ts b/ng-sample/app/examples/modal/modal-page-router-outlet-test.ts deleted file mode 100644 index 6a676dbaf..000000000 --- a/ng-sample/app/examples/modal/modal-page-router-outlet-test.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { Component, ViewContainerRef } from "@angular/core"; -import * as dialogs from "tns-core-modules/ui/dialogs"; -import { ModalDialogService, ModalDialogOptions } from "nativescript-angular/directives/dialogs"; -import { FirstComponent, SecondComponent, ThirdComponent, PageRouterOutletAppComponent } from "../router/page-router-outlet-test"; - -@Component({ - selector: "modal-router-outlet-test", - template: ` - - - - - - - - ` -}) -export class ModalPageRouterOutletTest { - - public result: string = "result"; - - constructor(private modal: ModalDialogService, private vcRef: ViewContainerRef) { } - - static entries = [ - PageRouterOutletAppComponent, - ]; - - static exports = [ - FirstComponent, - SecondComponent, - ThirdComponent - ]; - - static routes = PageRouterOutletAppComponent.routes; - - public showModal(fullscreen: boolean) { - const options: ModalDialogOptions = { - fullscreen: fullscreen, - viewContainerRef: this.vcRef - }; - - this.modal.showModal(PageRouterOutletAppComponent, options).then((res: string) => { - this.result = res || "empty result"; - }); - } - -} diff --git a/ng-sample/app/examples/modal/modal-router-outlet-test.ts b/ng-sample/app/examples/modal/modal-router-outlet-test.ts deleted file mode 100644 index 46f69697f..000000000 --- a/ng-sample/app/examples/modal/modal-router-outlet-test.ts +++ /dev/null @@ -1,46 +0,0 @@ -import { Component, ViewContainerRef } from "@angular/core"; -import * as dialogs from "tns-core-modules/ui/dialogs"; -import { ModalDialogService, ModalDialogOptions } from "nativescript-angular/directives/dialogs"; -import { FirstComponent, SecondComponent, RouterOutletAppComponent } from "../router/router-outlet-test"; - -@Component({ - selector: "modal-router-outlet-test", - template: ` - - - - - - - - ` -}) -export class ModalRouterOutletTest { - - public result: string = "result"; - - constructor(private modal: ModalDialogService, private vcRef: ViewContainerRef) { } - - static entries = [ - RouterOutletAppComponent, - ]; - - static exports = [ - FirstComponent, - SecondComponent - ]; - - static routes = RouterOutletAppComponent.routes; - - public showModal(fullscreen: boolean) { - const options: ModalDialogOptions = { - fullscreen: fullscreen, - viewContainerRef: this.vcRef - }; - - this.modal.showModal(RouterOutletAppComponent, options).then((res: string) => { - this.result = res || "empty result"; - }); - } - -} diff --git a/ng-sample/app/examples/modal/modal-test.ts b/ng-sample/app/examples/modal/modal-test.ts deleted file mode 100644 index b4b9279ab..000000000 --- a/ng-sample/app/examples/modal/modal-test.ts +++ /dev/null @@ -1,114 +0,0 @@ -import { Component, ViewContainerRef } from "@angular/core"; -import * as dialogs from "tns-core-modules/ui/dialogs"; -import { ModalDialogService, ModalDialogOptions } from "nativescript-angular/directives/dialogs"; -import { ModalContent } from "./modal-content"; - -@Component({ - selector: "modal-test", - template: ` - - - - - - - - - - - - - - - - ` -}) -export class ModalTest { - - public result: string = "result"; - - constructor(private modal: ModalDialogService, private vcRef: ViewContainerRef) { } - - static entries = [ - ModalContent - ]; - - static exports = []; - - public showModal(fullscreen: boolean, animated = true, stretched = false) { - const options: ModalDialogOptions = { - context: { promptMsg: "This is the prompt message!" }, - fullscreen, - animated, - stretched, - viewContainerRef: this.vcRef - }; - - this.modal.showModal(ModalContent, options).then((res: string) => { - this.result = res || "empty result"; - }); - } - - public showAlert() { - dialogs.alert({ - title: "Alert Title", - message: "The name will change.", - okButtonText: "OK" - }).then(() => { - this.result = "alert closed"; - }); - } - - public showConfirm() { - dialogs.confirm({ - title: "Name", - message: "Do you want to change the name?", - cancelButtonText: "No", - neutralButtonText: "Ignore", - okButtonText: "Yes" - }).then((confirmResult) => { - this.result = confirmResult + ""; - }); - } - - public showPrompt() { - dialogs.prompt({ - title: "Name", - message: "Enter name:", - cancelButtonText: "Cancel", - neutralButtonText: "Ignore", - okButtonText: "OK", - defaultText: "John Reese", - inputType: dialogs.inputType.text - }).then((promptResult) => { - this.result = promptResult.result ? promptResult.text : "no result"; - }); - } - - public showAction() { - dialogs.action({ - message: "Choose action:", - cancelButtonText: "Close", - actions: ["Foo", "Bar"] - }).then((actionResult) => { - this.result = actionResult; - }); - } - - public showLogin() { - dialogs.login({ - title: "Name", - message: "Enter name:", - cancelButtonText: "Cancel", - neutralButtonText: "Ignore", - okButtonText: "OK", - userName: "John", - password: "Reese" - }).then((loginResult) => { - this.result = loginResult.result ? - ("user: " + loginResult.userName + " pass: " + loginResult.password) : - "no result"; - }); - } - -} diff --git a/ng-sample/app/examples/platform-directives/platform-directives-test.ts b/ng-sample/app/examples/platform-directives/platform-directives-test.ts deleted file mode 100644 index 50e9701cb..000000000 --- a/ng-sample/app/examples/platform-directives/platform-directives-test.ts +++ /dev/null @@ -1,17 +0,0 @@ -import {Component} from "@angular/core"; - -@Component({ - selector: "action-bar-test", - template: ` - - - - - - ` -}) -export class PlatfromDirectivesTest { -} - diff --git a/ng-sample/app/examples/renderer-test.html b/ng-sample/app/examples/renderer-test.html deleted file mode 100644 index 41edcaee1..000000000 --- a/ng-sample/app/examples/renderer-test.html +++ /dev/null @@ -1,59 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ng-sample/app/examples/renderer-test.ts b/ng-sample/app/examples/renderer-test.ts deleted file mode 100644 index fb03bd28c..000000000 --- a/ng-sample/app/examples/renderer-test.ts +++ /dev/null @@ -1,113 +0,0 @@ -import { Component, Directive, Host, ElementRef, Input } from "@angular/core"; -import { Observable } from "tns-core-modules/data/observable"; -import { SegmentedBarItem } from "tns-core-modules/ui/segmented-bar"; - -function createTabItem(title: string) { - let item = new SegmentedBarItem(); - item.title = title; - return item; -} - -@Component({ - moduleId: module.id, - selector: "templated-component", - templateUrl: "../title.html" -}) -export class TemplatedComponent { - @Input() public renderChild: boolean = false; - @Input() public text: string = "Hello, external templates"; -} - -@Directive({ - selector: "Progress" -}) -export class ProgressDirective { - constructor(private element: ElementRef) {} - - ngOnInit() { - this.element.nativeElement.value = 90; - } -} - -@Component({ - moduleId: module.id, - selector: "renderer-test", - templateUrl: "./renderer-test.html" -}) -export class RendererTest { - public buttonText: string = ""; - public showDetails: boolean = false; - public detailsText: string = ""; - public moreDetailsText: string = ""; - public detailLines: Array = []; - public isValid: boolean = true; - public model: any; - public text: string = "initial"; - - public testModel = { mydate: new Date() }; - - static entries = [TemplatedComponent]; - - static exports = [ProgressDirective]; - - constructor() { - this.buttonText = "Save..."; - this.showDetails = true; - this.detailsText = "plain ng-if directive \ndetail 1-2-3..."; - this.moreDetailsText = "More details:"; - this.model = { - test: "Jack", - testBoolean: false, - deliveryDate: new Date(), - deliveryTime: new Date(), - mydate: new Date(), - sliderTest: 0, - search: null, - selectedIndex: 0, - listPickerItems: [1, 2, 3, 4], - segmentedBarItems: [ - createTabItem("first"), - createTabItem("second"), - createTabItem("third"), - createTabItem("fourth") - ] - }; - - this.detailLines = ["ngFor inside a ngIf 1", "ngFor inside a ngIf 2"]; - } - - onSave($event, name, $el) { - console.log("onSave event " + $event + " name " + name); - alert(name); - } - - testLoaded($event) { - console.log("testLoaded called with event args: " + $event); - } - - onToggleDetails() { - console.log("onToggleDetails current: " + this.showDetails); - this.showDetails = !this.showDetails; - } - - setUpperCase($event) { - if ($event.value && $event.value.toUpperCase) { - return $event.value.toUpperCase(); - } - if (typeof $event === "string") { - return $event.toUpperCase(); - } - return $event; - } - count = 0; - onTap() { - console.log("On tap!!! count: " + this.count++); - this.text = "tapped ## : " + this.count; - } - - public show = true; - - toggle(){ - this.show = !this.show; - } -} diff --git a/ng-sample/app/examples/router/clear-history-test.ts b/ng-sample/app/examples/router/clear-history-test.ts deleted file mode 100644 index 8c25960c5..000000000 --- a/ng-sample/app/examples/router/clear-history-test.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { Component, OnInit, OnDestroy, Injectable } from "@angular/core"; -import { Router } from "@angular/router"; -import { RouterExtensions } from "nativescript-angular/router"; -import { NSLocationStrategy } from "nativescript-angular/router/ns-location-strategy"; -import { BehaviorSubject } from "rxjs"; - -@Injectable() -class LocationLogService { - public routerEvents$ = new BehaviorSubject>([]); - - constructor(router: Router, private strategy: NSLocationStrategy) { - router.events.subscribe((e) => { - this.routerEvents$.next([...this.routerEvents$.getValue(), e.toString()]); - }); - } -} - -@Component({ - selector: "location-log", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - - - - ` -}) -export class LocationLog { - constructor(private service: LocationLogService) { } -} - -@Component({ - selector: "first", - templateUrl: "examples/router/clear-history.component.html", - styleUrls: ["examples/router/styles.css"] -}) -class FirstComponent implements OnInit, OnDestroy { - name = "First"; - constructor(private nav: RouterExtensions) { } - ngOnInit() { console.log("FirstComponent - ngOnInit()"); } - ngOnDestroy() { console.log("FirstComponent - ngOnDestroy()"); } -} - -@Component({ - selector: "second", - templateUrl: "examples/router/clear-history.component.html", - styleUrls: ["examples/router/styles.css"] -}) -class SecondComponent implements OnInit, OnDestroy { - name = "Second"; - constructor(private nav: RouterExtensions) { } - ngOnInit() { console.log("SecondComponent - ngOnInit()"); } - ngOnDestroy() { console.log("SecondComponent - ngOnDestroy()"); } -} - -@Component({ - selector: "third", - templateUrl: "examples/router/clear-history.component.html", - styleUrls: ["examples/router/styles.css"] -}) -class ThirdComponent implements OnInit, OnDestroy { - name = "Third"; - constructor(private nav: RouterExtensions) { } - ngOnInit() { console.log("ThirdComponent - ngOnInit()"); } - ngOnDestroy() { console.log("ThirdComponent - ngOnDestroy()"); } -} - -@Component({ - selector: "navigation-test", - providers: [LocationLogService], - template: `` -}) -export class ClearHistoryAppComponent { - static routes = [ - { path: "", redirectTo: "/first", terminal: true, pathMatch: "full" }, - { path: "first", component: FirstComponent }, - { path: "second", component: SecondComponent }, - { path: "third", component: ThirdComponent }, - ]; - - static entries = [ - FirstComponent, - SecondComponent, - ThirdComponent, - LocationLog, - ]; -} diff --git a/ng-sample/app/examples/router/clear-history.component.html b/ng-sample/app/examples/router/clear-history.component.html deleted file mode 100644 index 2fffb27d9..000000000 --- a/ng-sample/app/examples/router/clear-history.component.html +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/ng-sample/app/examples/router/login-test.ts b/ng-sample/app/examples/router/login-test.ts deleted file mode 100644 index 3a30a55d4..000000000 --- a/ng-sample/app/examples/router/login-test.ts +++ /dev/null @@ -1,189 +0,0 @@ -import { Component, Injectable } from "@angular/core"; -import { CanActivate, Resolve, ActivatedRouteSnapshot, RouterStateSnapshot } from "@angular/router"; -import { RouterExtensions, PageRoute } from "nativescript-angular/router"; -import * as appSettings from "tns-core-modules/application-settings"; -import { Observable } from "rxjs"; -import { map, switchMap } from "rxjs/operators"; - -const USER_KEY = "user"; - -@Injectable() -class LoginService { - username: string; - get isLogged(): boolean { return !!this.username; } - - constructor() { - this.username = appSettings.getString(USER_KEY); - console.log("LoginService.constructor() username: " + this.username); - } - - login(user: string, password: string): Promise { - console.log("LoginService.login() username: " + this.username); - if (user) { - this.username = user; - appSettings.setString(USER_KEY, this.username); - return Promise.resolve(true); - } else { - return Promise.resolve(false); - } - } - - logout(): Promise { - console.log("LoginService.logout()"); - - this.username = undefined; - appSettings.remove(USER_KEY); - return Promise.resolve(true); - } -} - - -@Component({ - selector: "login", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - - ` -}) -class LoginComponent { - public user: string; - public pass: string; - constructor(private nav: RouterExtensions, private loginService: LoginService) { - } - - login() { - this.loginService.login(this.user, this.pass).then((result) => { - if (result) { - this.nav.navigate(["/"], { clearHistory: true }); - } - }); - } -} - - -export interface ResolvedData { - id: number; -} - -@Component({ - selector: "main", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - - ` -}) -class MainComponent { - private data$: Observable; - constructor(private nav: RouterExtensions, private loginService: LoginService, private pageRoute: PageRoute) { - this.data$ = this.pageRoute.activatedRoute.pipe( - switchMap(activatedRoute => activatedRoute.data), - map(data => data[0]) - ); - } - - logout() { - this.loginService.logout().then((result) => { - if (result) - this.nav.navigate(["/login"], { clearHistory: true }); - }); - } - - onResolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { - console.log("MainComponent.onResolve()"); - return true; - } -} - -@Component({ - selector: "inner", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - ` -}) -class InnerComponent { - constructor(private nav: RouterExtensions, private loginService: LoginService) { - } - - back() { - this.nav.backToPreviousPage(); - } - logout() { - this.loginService.logout().then((result) => { - if (result) { - this.nav.navigate(["/login"], { clearHistory: true }); - } - }); - } -} - -@Injectable() -class AuthGuard implements CanActivate { - constructor( - private loginService: LoginService, - private nav: RouterExtensions) { - } - - canActivate() { - if (this.loginService.isLogged) { - console.log("AuthGuard: authenticated"); - return true; - } else { - console.log("AuthGuard: redirecting to login"); - this.nav.navigate(["/login"]); - return false; - } - } -} - -@Injectable() -class ResolveGuard implements Resolve { - static counter = 0; - resolve(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): - Observable | Promise | ResolvedData { - const result: ResolvedData = { id: ResolveGuard.counter++ }; - console.log(`ResolveGuard: Fetching new data. Result: ${JSON.stringify(result)} `); - return result; - } -} - -@Component({ - selector: "navigation-test", - template: `` -}) -export class LoginAppComponent { - static routes = [ - { path: "", redirectTo: "/main", terminal: true, pathMatch: "full" }, - { path: "main", component: MainComponent, canActivate: [AuthGuard], resolve: [ResolveGuard] }, - { path: "inner", component: InnerComponent, canActivate: [AuthGuard] }, - { path: "login", component: LoginComponent }, - ]; - - static entries = [ - LoginComponent, - MainComponent, - InnerComponent - ]; - - static providers = [ - AuthGuard, - ResolveGuard, - LoginService, - ]; -} diff --git a/ng-sample/app/examples/router/page-router-outlet-nested-test.ts b/ng-sample/app/examples/router/page-router-outlet-nested-test.ts deleted file mode 100644 index df9363f01..000000000 --- a/ng-sample/app/examples/router/page-router-outlet-nested-test.ts +++ /dev/null @@ -1,158 +0,0 @@ -import { Component, OnInit, OnDestroy } from "@angular/core"; -import { ActivatedRoute, Router, Route } from "@angular/router"; -import { Location } from "@angular/common"; -import { Page } from "tns-core-modules/ui/page"; -import { Observable } from "rxjs"; -import { map } from "rxjs/operators"; - -@Component({ - selector: "first", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - ` -}) -class FirstComponent implements OnInit, OnDestroy { - constructor(page: Page) { - console.log("FirstComponent.constructor() page: " + page); - } - - ngOnInit() { - console.log("FirstComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("FirstComponent - ngOnDestroy()"); - } -} - - -@Component({ - selector: "master", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - ` -}) -class MasterComponent { - public details: Array = [1, 2, 3]; - - constructor(private router: Router, private route: ActivatedRoute) { - console.log("MasterComponent.constructor()"); - } -} - -@Component({ - selector: "detail", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - - ` -}) -class DetailComponent { - public id$: Observable; - constructor(private router: Router, private route: ActivatedRoute) { - console.log("DetailComponent.constructor()"); - this.id$ = route.params.pipe(map(r => r["id"])); - } - - ngOnInit() { - console.log("DetailComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("DetailComponent - ngOnDestroy()"); - } -} - -@Component({ - selector: "second", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - - - - - - - ` -}) -class SecondComponent implements OnInit, OnDestroy { - public depth$: Observable; - public nextDepth$: Observable; - constructor(private location: Location, route: ActivatedRoute, page: Page) { - console.log("SecondComponent.constructor() page: " + page); - this.depth$ = route.params.pipe(map(r => r["depth"])); - this.nextDepth$ = route.params.pipe(map(r => +r["depth"] + 1)); - } - - ngOnInit() { - console.log("SecondComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("SecondComponent - ngOnDestroy()"); - } - - goBack() { - this.location.back(); - } -} - - -@Component({ - selector: "navigation-test", - template: `` -}) -export class PageRouterOutletNestedAppComponent { - static routes: Route[] = [ - { path: "", redirectTo: "/second/1/detail/3", pathMatch: "full" }, - { - path: "first", component: FirstComponent, - }, - { - path: "second/:depth", component: SecondComponent, - children: [ - { path: "", component: MasterComponent }, - { path: "detail/:id", component: DetailComponent } - ] - }, - ]; - - static entries = [ - FirstComponent, - SecondComponent, - MasterComponent, - DetailComponent - ]; - - constructor(router: Router, private location: Location) { - router.events.subscribe((e) => { - console.log("--EVENT-->: " + e.toString()); - }); - } -} diff --git a/ng-sample/app/examples/router/page-router-outlet-test.ts b/ng-sample/app/examples/router/page-router-outlet-test.ts deleted file mode 100644 index ed30a8c67..000000000 --- a/ng-sample/app/examples/router/page-router-outlet-test.ts +++ /dev/null @@ -1,125 +0,0 @@ -import { Component, OnInit, OnDestroy } from "@angular/core"; -import { ActivatedRoute, Router } from "@angular/router"; -import { Location } from "@angular/common"; -import { Page } from "tns-core-modules/ui/page"; -import { Observable } from "rxjs"; -import { map } from "rxjs/operators"; - -@Component({ - selector: "first", - styleUrls: ["./styles.css"], - template: ` - - - - - - - - ` -}) -export class FirstComponent implements OnInit, OnDestroy { - constructor(page: Page) { - console.log("FirstComponent.constructor() page: " + page); - } - - ngOnInit() { - console.log("FirstComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("FirstComponent - ngOnDestroy()"); - } -} - -@Component({ - selector: "second", - styleUrls: ["./styles.css"], - template: ` - - - - - - - - - ` -}) -export class SecondComponent implements OnInit, OnDestroy { - public id: Observable; - constructor(private location: Location, route: ActivatedRoute, page: Page) { - console.log("SecondComponent.constructor() page: " + page); - this.id = route.params.pipe(map(r => r["id"])); - } - - ngOnInit() { - console.log("SecondComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("SecondComponent - ngOnDestroy()"); - } - - goBack() { - this.location.back(); - } -} - -@Component({ - selector: "third", - styleUrls: ["./styles.css"], - template: ` - - - - - - - - - ` -}) -export class ThirdComponent implements OnInit, OnDestroy { - public id: Observable; - constructor(private location: Location, route: ActivatedRoute, page: Page) { - console.log("ThirdComponent.constructor() page: " + page); - this.id = route.params.pipe(map(r => r["id"])); - } - - ngOnInit() { - console.log("ThirdComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("ThirdComponent - ngOnDestroy()"); - } - - goBack() { - this.location.back(); - } -} - -@Component({ - selector: "navigation-test", - template: `` -}) -export class PageRouterOutletAppComponent { - static routes = [ - { path: "", component: FirstComponent }, - { path: "second/:id", component: SecondComponent }, - { path: "third/:id", component: ThirdComponent }, - ]; - - static entries = [ - FirstComponent, - SecondComponent, - ThirdComponent - ]; - - constructor(router: Router, private location: Location) { - router.events.subscribe((e) => { - console.log("--EVENT-->: " + e.toString()); - }); - } -} diff --git a/ng-sample/app/examples/router/router-outlet-test.ts b/ng-sample/app/examples/router/router-outlet-test.ts deleted file mode 100644 index 90d37c7dc..000000000 --- a/ng-sample/app/examples/router/router-outlet-test.ts +++ /dev/null @@ -1,82 +0,0 @@ -import { Component, OnInit, OnDestroy } from "@angular/core"; -import { ActivatedRoute } from "@angular/router"; -import { map } from "rxjs/operators"; - -@Component({ - selector: "first", - styleUrls: ["examples/router/styles.css"], - template: ` - - - ` -}) -export class FirstComponent implements OnInit, OnDestroy { - ngOnInit() { - console.log("FirstComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("FirstComponent - ngOnDestroy()"); - } -} - -@Component({ - selector: "second", - styleUrls: ["examples/router/styles.css"], - template: ` - - - ` -}) -export class SecondComponent implements OnInit, OnDestroy { - id; - constructor(route: ActivatedRoute) { - this.id = route.params.pipe(map(r => r["id"])); - } - - ngOnInit() { - console.log("SecondComponent - ngOnInit()"); - } - - ngOnDestroy() { - console.log("SecondComponent - ngOnDestroy()"); - } -} - -@Component({ - selector: "navigation-test", - styleUrls: ["examples/router/styles.css"], - template: ` - - - - - - - - - - ` -}) -export class RouterOutletAppComponent { - static routes = [ - { path: "", redirectTo: "/first", terminal: true, pathMatch: "full" }, - { path: "first", component: FirstComponent }, - { path: "second/:id", component: SecondComponent }, - ]; - - static entries = [ - FirstComponent, - SecondComponent, - ]; -} - diff --git a/ng-sample/app/examples/router/styles.css b/ng-sample/app/examples/router/styles.css deleted file mode 100644 index 0182ca37a..000000000 --- a/ng-sample/app/examples/router/styles.css +++ /dev/null @@ -1,73 +0,0 @@ -.title { - font-size: 30; - margin: 16; - color: darkslategray; -} - -.subtitle { - font-size: 20; - horizontal-align: center; - margin: 10; -} - -.nav { - orientation: horizontal; - horizontal-align: center; - padding: 4; - background-color: lightblue; -} - -.link { - margin: 10 30; - horizontal-align: center; -} - -.active { - color: orangered; -} - -.router-link-active { - background-color: lightcoral; -} - -button { - horizontal-align: left; - margin: 0 6; -} - -.master { - margin: 10; - background-color: lightgreen; -} - -.master button { - horizontal-align: center; -} - -.detail { - margin: 10; - background-color: lightgreen; -} - -.detail button { - horizontal-align: center; -} - -.odd { - background-color: white; - margin: 2; -} - -.even { - background-color: whitesmoke; - margin: 2; -} - -.stretch { - horizontal-align: stretch; - margin: 0 10; -} - -.rlaActive { - color:blue; -} diff --git a/ng-sample/app/examples/tab-view/tab-view-test.html b/ng-sample/app/examples/tab-view/tab-view-test.html deleted file mode 100644 index 5caed39c8..000000000 --- a/ng-sample/app/examples/tab-view/tab-view-test.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - - - - - \ No newline at end of file diff --git a/ng-sample/app/examples/tab-view/tab-view-test.ts b/ng-sample/app/examples/tab-view/tab-view-test.ts deleted file mode 100644 index 73a17c312..000000000 --- a/ng-sample/app/examples/tab-view/tab-view-test.ts +++ /dev/null @@ -1,8 +0,0 @@ -import { Component } from "@angular/core"; - -@Component({ - selector: "tab-view-test", - templateUrl: "./examples/tab-view/tab-view-test.html" -}) -export class TabViewTest { } - diff --git a/ng-sample/app/icon.png b/ng-sample/app/icon.png deleted file mode 100644 index 1034356e2..000000000 Binary files a/ng-sample/app/icon.png and /dev/null differ diff --git a/ng-sample/app/package.json b/ng-sample/app/package.json deleted file mode 100644 index afcb31a83..000000000 --- a/ng-sample/app/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "tns-template-hello-world", - "main": "starter.js", - "bundleMain": "app.js", - "bundleOutput": "bundle.js", - "version": "1.2.0", - "author": "Telerik ", - "description": "Nativescript hello-world project template", - "license": "BSD", - "keywords": [ - "telerik", - "mobile", - "nativescript", - "{N}", - "tns", - "appbuilder", - "template" - ], - "repository": { - "type": "git", - "url": "git://github.com/NativeScript/template-hello-world.git" - }, - "bugs": { - "url": "https://github.com/NativeScript/template-hello-world/issues" - }, - "homepage": "https://github.com/NativeScript/template-hello-world" -} diff --git a/ng-sample/app/performance/benchmark.ts b/ng-sample/app/performance/benchmark.ts deleted file mode 100644 index 5f32df717..000000000 --- a/ng-sample/app/performance/benchmark.ts +++ /dev/null @@ -1,138 +0,0 @@ -import {StackLayout} from "tns-core-modules/ui/layouts/stack-layout"; -import {Button} from "tns-core-modules/ui/button"; -import {Label} from "tns-core-modules/ui/label"; -import {Inject, Component, ApplicationRef} from "@angular/core"; -import * as profiling from "./profiling"; - -@Component({ - selector: "tree", - inputs: ["data"], - template: - ` - - - - - - - - - ` -}) -class TreeComponent { - data: TreeNode; -} - -@Component({ - selector: "benchmark", - template: ` - - - - - - - - - -`, -}) -export class Benchmark { - private count: number = 0; - private maxDepth: number = 10; - public initDataNg = new TreeNode("", null, null); - public initDataBaseline = new TreeNode("", null, null); - - constructor(private appRef: ApplicationRef) { - } - - public static entries = [ - TreeComponent - ]; - - public baselineTest(container: StackLayout) { - this.createBaselineDom(); - - profiling.start("baseline"); - this.renderBaselineNode(container, this.initDataBaseline); - profiling.stop("baseline"); - - container.removeChildren(); - } - - public componentTest() { - this.initDataNg = new TreeNode("", null, null); - this.appRef.tick(); - - profiling.start("angular"); - this.createNgDom(); - profiling.stop("angular"); - } - - private renderBaselineNode(container: StackLayout, node: TreeNode) { - let valueLabel = new Label(); - valueLabel.text = node.value; - container.addChild(valueLabel); - - if (node.left) { - let childContainer = new StackLayout(); - container.addChild(childContainer); - this.renderBaselineNode(childContainer, node.left); - } - if (node.right) { - let childContainer = new StackLayout(); - container.addChild(childContainer); - this.renderBaselineNode(childContainer, node.right); - } - } - - private createBaselineDom() { - let values = this.count++ % 2 === 0 ? ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "*"] : - ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "-"]; - this.initDataBaseline = buildTree(this.maxDepth, values, 0); - this.appRef.tick(); - } - - private createNgDom() { - let values = this.count++ % 2 === 0 ? ["0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "*"] : - ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "-"]; - this.initDataNg = buildTree(this.maxDepth, values, 0); - this.appRef.tick(); - } -} - - -export class TreeNode { - value: string; - left: TreeNode; - right: TreeNode; - constructor(value, left, right) { - this.value = value; - this.left = left; - this.right = right; - } -} - -let nodes = 0; - -function buildTree(maxDepth, values, curDepth) { - if (curDepth === 0) { - nodes = 0; - } else { - nodes++; - } - - if (maxDepth === curDepth) { - return new TreeNode("", null, null); - } - - let result = new TreeNode( - values[curDepth], - buildTree(maxDepth, values, curDepth + 1), - buildTree(maxDepth, values, curDepth + 1)); - - if (curDepth === 0) { - console.log(`${nodes} nodes created.`); - } - return result; -} diff --git a/ng-sample/app/performance/profiling.ts b/ng-sample/app/performance/profiling.ts deleted file mode 100644 index 1a6e2d295..000000000 --- a/ng-sample/app/performance/profiling.ts +++ /dev/null @@ -1,106 +0,0 @@ -declare var java: any; -declare var CACurrentMediaTime: any; -declare var __startCPUProfiler: any; -declare var __stopCPUProfiler: any; - -export let ENABLE_PROFILING = true; - -let anyGlobal = global; - -export function time(): number { - if (!ENABLE_PROFILING) { - return; - } - - if (anyGlobal.android) { - return java.lang.System.nanoTime() / 1000000; // 1 ms = 1000000 ns - } else { - return CACurrentMediaTime() * 1000; - } -} - -interface TimerInfo { - totalTime: number; - lastTime?: number; - count: number; - currentStart: number; -} - -if (!anyGlobal.timers) { - anyGlobal.timers = new Map(); -} -export function start(name: string): void { - if (!ENABLE_PROFILING) { - return; - } - - let info: TimerInfo; - if (anyGlobal.timers.has(name)) { - info = anyGlobal.timers.get(name); - if (info.currentStart !== 0) { - throw new Error(`Timer already started: ${name}`); - } - info.currentStart = time(); - } else { - info = { - totalTime: 0, - count: 0, - currentStart: time() - }; - anyGlobal.timers.set(name, info); - } -} - -export function pause(name: string) { - if (!ENABLE_PROFILING) { - return; - } - - let info = pauseInternal(name); - console.log(`---- [${name}] PAUSE last: ${info.lastTime} total: ${info.totalTime} count: ${info.count}`); -} - -export function stop(name: string) { - if (!ENABLE_PROFILING) { - return; - } - - let info = pauseInternal(name); - console.log(`---- [${name}] STOP total: ${info.totalTime} count:${info.count}`); - - anyGlobal.timers.delete(name); -} - -function pauseInternal(name: string): TimerInfo { - let info = anyGlobal.timers.get(name); - if (!info) { - throw new Error(`No timer started: ${name}`); - } - - info.lastTime = Math.round(time() - info.currentStart); - info.totalTime += info.lastTime; - info.count++; - info.currentStart = 0; - - return info; -} - -export function startCPUProfile(name: string) { - if (!ENABLE_PROFILING) { - return; - } - - if (anyGlobal.android) { - __startCPUProfiler(name); - } -} - -export function stopCPUProfile(name: string) { - if (!ENABLE_PROFILING) { - return; - } - - if (anyGlobal.android) { - __stopCPUProfiler(name); - } -} diff --git a/ng-sample/app/starter.ts b/ng-sample/app/starter.ts deleted file mode 100644 index 07c7ba758..000000000 --- a/ng-sample/app/starter.ts +++ /dev/null @@ -1,26 +0,0 @@ -declare var java: any; -declare var CACurrentMediaTime: any; - -let anyGlobal = global; - -if (!anyGlobal.timers) { - anyGlobal.timers = new Map(); -} - -function time() { - if (anyGlobal.android) { - return java.lang.System.nanoTime() / 1000000; // 1 ms = 1000000 ns - } else { - return CACurrentMediaTime() * 1000; - } -} - -let timerEntry = { - totalTime: 0, - count: 0, - currentStart: time() -}; - -anyGlobal.timers.set("application-start", timerEntry); - -import "./app.js"; diff --git a/ng-sample/app/title.html b/ng-sample/app/title.html deleted file mode 100644 index c7537fac5..000000000 --- a/ng-sample/app/title.html +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/ng-sample/emulateAndroid.sh b/ng-sample/emulateAndroid.sh deleted file mode 100755 index b27c178e0..000000000 --- a/ng-sample/emulateAndroid.sh +++ /dev/null @@ -1,8 +0,0 @@ -#!/usr/bin/env bash -set -e - -SCRIPT_DIR=$(readlink -f $(dirname "${BASH_SOURCE[0]}")) -AVD=${1:-nexus4-x64} - -cd $SCRIPT_DIR -tns emulate android --avd $AVD & diff --git a/ng-sample/package.json b/ng-sample/package.json deleted file mode 100644 index 1b0326ecc..000000000 --- a/ng-sample/package.json +++ /dev/null @@ -1,60 +0,0 @@ -{ - "nativescript": { - "id": "org.nativescript.ngsample" - }, - "name": "tns-template-hello-world", - "main": "app.js", - "version": "1.1.0", - "author": "Telerik ", - "description": "Nativescript hello-world project template", - "license": "BSD", - "keywords": [ - "telerik", - "mobile", - "nativescript", - "{N}", - "tns", - "appbuilder", - "template" - ], - "repository": { - "type": "git", - "url": "git://github.com/NativeScript/template-hello-world.git" - }, - "bugs": { - "url": "https://github.com/NativeScript/template-hello-world/issues" - }, - "homepage": "https://github.com/NativeScript/template-hello-world", - "dependencies": { - "@angular/animations": "~8.2.0", - "@angular/common": "~8.2.0", - "@angular/compiler": "~8.2.0", - "@angular/core": "~8.2.0", - "@angular/forms": "~8.2.0", - "@angular/platform-browser": "~8.2.0", - "@angular/platform-browser-dynamic": "~8.2.0", - "@angular/router": "~8.2.0", - "nativescript-angular": "file:../nativescript-angular-package", - "rxjs": "^6.4.0", - "tns-core-modules": "next", - "tns-platform-declarations": "next", - "zone.js": "^0.9.1" - }, - "devDependencies": { - "@angular/compiler-cli": "~8.2.0", - "@ngtools/webpack": "~8.2.0", - "babel-traverse": "6.9.0", - "babel-types": "6.10.0", - "babylon": "6.8.1", - "filewalker": "0.1.2", - "lazy": "1.0.11", - "nativescript-dev-webpack": "~1.0.1", - "shelljs": "^0.7.0", - "tslint": "^4.5.1", - "typescript": "~3.5.3" - }, - "scripts": { - "tslint": "tslint --project tsconfig.json --config tslint.json", - "update-app-ng-deps": "update-app-ng-deps" - } -} diff --git a/ng-sample/references.d.ts b/ng-sample/references.d.ts deleted file mode 100644 index b14f3837d..000000000 --- a/ng-sample/references.d.ts +++ /dev/null @@ -1 +0,0 @@ -/// Needed for autocompletion and compilation. \ No newline at end of file diff --git a/ng-sample/sync-android.sh b/ng-sample/sync-android.sh deleted file mode 100755 index b7d791fc7..000000000 --- a/ng-sample/sync-android.sh +++ /dev/null @@ -1,13 +0,0 @@ -#!/bin/sh -APPNAME="$1" # e.g. org.nativescript.myapp -APPFOLDER="data/data/$APPNAME/files/app" -NSACTIVITY="com.tns.NativeScriptActivity" - -cd app -for file_match in "*.js" "*.xml" "*.css"; do - find . -iname "$file_match" -print0 | \ - xargs -0 -I FILEPATH -P 16 adb push "FILEPATH" "$APPFOLDER/FILEPATH" \; -done - -adb shell am force-stop "$APPNAME" -adb shell am start -a android.intent.action.MAIN -n "$APPNAME/$NSACTIVITY" diff --git a/ng-sample/tsconfig.json b/ng-sample/tsconfig.json deleted file mode 100644 index 4f7b6304b..000000000 --- a/ng-sample/tsconfig.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "compilerOptions": { - "module": "commonjs", - "moduleResolution": "node", - "target": "es5", - "inlineSourceMap": true, - "experimentalDecorators": true, - "removeComments": false, - "emitDecoratorMetadata": true, - "noImplicitUseStrict": true, - "noEmitHelpers": true, - "noEmitOnError": true, - "lib": [ - "es6", - "dom", - "es2015.iterable" - ], - "baseUrl": ".", - "paths": { - "*": [ - "./node_modules/tns-core-modules/*", - "./node_modules/*" - ], - "~/*": [ - "app/*" - ] - }, - }, - "include": [ - "../nativescript-angular", - "../nativescript-angular-package", - "**/*" - ], - "exclude": [ - "../nativescript-angular-package/node_modules", - "../nativescript-angular/node_modules", - "../nativescript-angular-package/**/*.d.ts", - "../nativescript-angular/**/*.d.ts", - "node_modules", - "platforms" - ] -} \ No newline at end of file diff --git a/ng-sample/tslint.json b/ng-sample/tslint.json deleted file mode 100644 index 6cab565e9..000000000 --- a/ng-sample/tslint.json +++ /dev/null @@ -1,117 +0,0 @@ -{ - "rules":{ - "no-any": false, - "no-inferrable-types": false, - "no-internal-module": true, - "no-var-requires": false, - "typedef": false, - "typedef-whitespace": [ - true, - { - "call-signature": "nospace", - "index-signature": "nospace", - "parameter": "nospace", - "property-declaration": "nospace", - "variable-declaration": "nospace" - }, - { - "call-signature": "space", - "index-signature": "space", - "parameter": "space", - "property-declaration": "space", - "variable-declaration": "space" - } - ], - - "ban": false, - "curly": true, - "no-arg": true, - "no-bitwise": true, - "no-conditional-assignment": true, - "no-console": [ - true, - "debug", - "info", - "time", - "timeEnd", - "trace" - ], - "no-construct": true, - "no-debugger": true, - "no-duplicate-variable": true, - "no-empty": false, - "no-eval": true, - "no-null-keyword": false, - "no-shadowed-variable": true, - "no-string-literal": false, - "no-switch-case-fall-through": true, - "no-unused-expression": true, - "no-use-before-declare": true, - "no-var-keyword": true, - "radix": false, - "switch-default": true, - "triple-equals": [ - true, - "allow-null-check" - ], - "eofline": true, - "indent": [ - true, - "spaces" - ], - "max-line-length": [ - true, - 120 - ], - "no-require-imports": false, - "no-trailing-whitespace": true, - "object-literal-sort-keys": false, - "trailing-comma": [ - true, - { - "multiline": false, - "singleline": "never" - } - ], - - "align": false, - "class-name": true, - "comment-format": [ - true, - "check-space" - ], - "interface-name": false, - "jsdoc-format": true, - "no-consecutive-blank-lines": [ - true, 2 - ], - "one-line": [ - true, - "check-open-brace", - "check-catch", - "check-else", - "check-finally", - "check-whitespace" - ], - "quotemark": [ - true, - "double", - "avoid-escape" - ], - "semicolon": [true, "always"], - "variable-name": [ - true, - "check-format", - "allow-leading-underscore", - "ban-keywords" - ], - "whitespace": [ - true, - "check-branch", - "check-decl", - "check-operator", - "check-separator", - "check-type" - ] - } -} diff --git a/tests/app/tests/value-accessor-tests.ts b/tests/app/tests/value-accessor-tests.ts index 89869a04c..0ee3b4bd1 100644 --- a/tests/app/tests/value-accessor-tests.ts +++ b/tests/app/tests/value-accessor-tests.ts @@ -111,7 +111,7 @@ describe("two-way binding via ng-model", () => { let diff = Math.abs(accessor.view.date.getTime() - defaultDate.getTime()); assert.isTrue(diff < 1000, "setting null should reset the value"); - accessor.writeValue("2010-03-17"); + accessor.writeValue("2010/03/17"); assert.equal(formatDate(new Date(2010, 2, 17)), formatDate(accessor.view.date)); accessor.writeValue(null);