From 4e4edfe4f1a279e957d41aae106f33fc0e0ed381 Mon Sep 17 00:00:00 2001 From: bhargava-ramudu <45444707+bhargava-ramudu@users.noreply.github.com> Date: Tue, 16 Feb 2021 02:04:10 +0530 Subject: [PATCH 1/8] Updated overview.md (#178) There is a little mistake in documentation. --- app/ns-ui-widgets-category/bottom-navigation/overview.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/ns-ui-widgets-category/bottom-navigation/overview.md b/app/ns-ui-widgets-category/bottom-navigation/overview.md index 751cdf3..6402aae 100644 --- a/app/ns-ui-widgets-category/bottom-navigation/overview.md +++ b/app/ns-ui-widgets-category/bottom-navigation/overview.md @@ -7,9 +7,9 @@ The `BottomNavigation` component roundup: Component Primary Objectives: - Used for High Level navigation. - Good for UX structure with 3 to 5 different options. -- Greater control over styling (copared to `TabVIew`). +- Greater control over styling (compared to `TabVIew`). Limitations - No navigation transitions. - No navigation gestures (e.g., swipe to navigate). -- No content preloading. \ No newline at end of file +- No content preloading. From 5ba724f93b62fe60cfdd182b56cb9155c34fc377 Mon Sep 17 00:00:00 2001 From: deeskayp <63452426+deeskayp@users.noreply.github.com> Date: Mon, 15 Feb 2021 21:34:25 +0100 Subject: [PATCH 2/8] Update end.md (#179) fixed typo in `lineHeight` --- app/ns-ui-widgets-category/text-field/end.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/ns-ui-widgets-category/text-field/end.md b/app/ns-ui-widgets-category/text-field/end.md index 107bd41..5a7d7eb 100644 --- a/app/ns-ui-widgets-category/text-field/end.md +++ b/app/ns-ui-widgets-category/text-field/end.md @@ -12,7 +12,7 @@ | `autocorrect` | `boolean` | Enables or disables autocorrection. | | `keyboardType` | [`KeyboardType`](https://docs.nativescript.org/api-reference/modules/_ui_editor_text_base_#keyboardtype) | Gets or sets the soft keyboard type | | `letterSpacing` | `number` | Gets or sets letter space style property. | -| `lineHiehgt` | `number` | Gets or sets line height style property. | +| `lineHeight` | `number` | Gets or sets line height style property. | | `maxLength` | `number` | Gets or sets the max number of symbols allowed as input. | | `returnKeyType` | [`ReturnKeyType`](https://docs.nativescript.org/api-reference/modules/_ui_editor_text_base_#returnkeytype) | Gets or sets the soft keyboard return key flavor. | | `secure` | `string` | Gets or sets if a text field is for password entry. | From 2b51bb01c086eb8fbb670c64ba93f0f507a895f4 Mon Sep 17 00:00:00 2001 From: Alex Hribsek Date: Mon, 15 Feb 2021 21:34:37 +0100 Subject: [PATCH 3/8] Fixed a typo (#182) Fixed a typo of `lineHiehgt` to `lineHeight`. From a16e0095becd8c805494d9457ebc7c3b93f44880 Mon Sep 17 00:00:00 2001 From: Celso Bessa Date: Mon, 15 Feb 2021 17:35:49 -0300 Subject: [PATCH 4/8] Add advice to ensure copying of src files to app (#184) Added advice -- the of CopyWebpackPlugin globs -- to mitigate errors in loading local src files because they were not copied to from the source code as mentioned on https://github.com/NativeScript/NativeScript/issues/6377#issuecomment-538769636 --- app/ns-ui-widgets-category/web-view/source-load/article.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/ns-ui-widgets-category/web-view/source-load/article.md b/app/ns-ui-widgets-category/web-view/source-load/article.md index 62911fa..f4bf738 100644 --- a/app/ns-ui-widgets-category/web-view/source-load/article.md +++ b/app/ns-ui-widgets-category/web-view/source-load/article.md @@ -3,6 +3,7 @@ The example demonstrates, how to load content in the WebView component, while us XML -Add WebView `src` from local file +Add WebView `src` from local file. You might need to add a glob for your HTML paths to the copy plugin in webpack.config.js. e.g. `new CopyWebpackPlugin([ { from: { glob: "www/*.html" } }]` + - \ No newline at end of file + From 6b82d4338cfa4c047935285bd2d707d8571dca45 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20JEAN?= Date: Mon, 15 Feb 2021 21:36:04 +0100 Subject: [PATCH 5/8] docs: Fix typos (#185) * Fix typo in TextField docs * Fix typo in TextView --- app/ns-ui-widgets-category/text-view/end.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/ns-ui-widgets-category/text-view/end.md b/app/ns-ui-widgets-category/text-view/end.md index 7b39dc4..6ce1d9a 100644 --- a/app/ns-ui-widgets-category/text-view/end.md +++ b/app/ns-ui-widgets-category/text-view/end.md @@ -12,7 +12,7 @@ | `autocorrect` | `boolean` | Enables or disables autocorrection. | | `keyboardType` | [`KeyboardType`](https://docs.nativescript.org/api-reference/modules/_ui_editor_text_base_#keyboardtype) | Gets or sets the soft keyboard type | | `letterSpacing` | `number` | Gets or sets letter space style property. | -| `lineHiehgt` | `number` | Gets or sets line height style property. | +| `lineHeight` | `number` | Gets or sets line height style property. | | `maxLength` | `number` | Gets or sets the max number of symbols allowed as input. | | `returnKeyType` | [`ReturnKeyType`](https://docs.nativescript.org/api-reference/modules/_ui_editor_text_base_#returnkeytype) | Gets or sets the soft keyboard return key flavor. | | `secure` | `string` | Gets or sets if a text field is for password entry. | From 8f6a9458b53504371fc63c93889e5642e815920a Mon Sep 17 00:00:00 2001 From: jb-jonathan <71793584+jb-jonathan@users.noreply.github.com> Date: Mon, 15 Feb 2021 15:36:21 -0500 Subject: [PATCH 6/8] Multiple typo fixes. (#186) --- .../frame/basic-navigation/article.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/app/ns-ui-widgets-category/frame/basic-navigation/article.md b/app/ns-ui-widgets-category/frame/basic-navigation/article.md index 2fdbc03..ab06b12 100644 --- a/app/ns-ui-widgets-category/frame/basic-navigation/article.md +++ b/app/ns-ui-widgets-category/frame/basic-navigation/article.md @@ -1,6 +1,6 @@ ### Default page To load a default (initial) page in your application use the `defaultPage` property of the `Frame` element. -With the example below the applicaiton will load a page located in `/app/home/first-page.xml` +With the example below the application will load a page located in `/app/home/first-page.xml` ### Navigate by page name @@ -13,7 +13,7 @@ The `navigate` method accepst [`NavigationEntry`](https://docs.nativescript.org/ -Full list of the NavigaitonEntry properties. Note that all of them are optional. Even the `moduleName` is optional, as alternatively you can pass a dynamically created page via `create`. +Full list of the NavigationEntry properties. Note that all of them are optional. Even the `moduleName` is optional, as alternatively you can pass a dynamically created page via `create`. - [animated](https://docs.nativescript.org/api-reference/interfaces/_ui_frame_.navigationentry#animated) - True to navigate to the new Page using animated transitions, false otherwise. - [backstackVisible](https://docs.nativescript.org/api-reference/interfaces/_ui_frame_.navigationentry#backstackVisible) - True to record the navigation in the backstack, false otherwise. If the parameter is set to false then the Page will be displayed but once navigated from it will not be able to be navigated back to. @@ -109,7 +109,7 @@ _custom-transition.ios.js/ts_ Each frame tracks the pages the user has visited in a navigation stack. To go back to a previous page, you need to use the [`goBack`](https://docs.nativescript.org/api-reference/classes/_ui_frame_.frame#goback) method of the current frame instance. -To veify that back navigation is possible, you can use the [`canGoBack`](https://docs.nativescript.org/api-reference/classes/_ui_frame_.frame#cangoback) boolean property. +To verify that back navigation is possible, you can use the [`canGoBack`](https://docs.nativescript.org/api-reference/classes/_ui_frame_.frame#cangoback) boolean property. - \ No newline at end of file + From a4f1f57249d89dd2b67614d054d2d8b23ff638f3 Mon Sep 17 00:00:00 2001 From: RomanAkhma Date: Tue, 16 Feb 2021 03:36:41 +0700 Subject: [PATCH 7/8] docs: typo fix in android-broadcast-receiver-page.js (#187) * Update android-broadcast-receiver-page.js typo fix * Update android-broadcast-receiver-page.js * Update android-broadcast-receiver-ts-page.ts --- .../android-broadcast-receiver-page.js | 2 +- .../android-broadcast-receiver-ts-page.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js index fd581a1..cbae814 100644 --- a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js +++ b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js @@ -19,7 +19,7 @@ function onNavigatedTo(args) { vm.set("actionBarTitle", args.context.actionBarTitle); // >> broadcast-receiver if (platformModule.isAndroid) { - // use tns-platform-dclarations to acces native APIs (e.g. ndroid.content.Intent) + // use tns-platform-declarations to acces native APIs (e.g. android.content.Intent) const receiverCallback = (androidContext, intent) => { const level = intent.getIntExtra(android.os.BatteryManager.EXTRA_LEVEL, -1); const scale = intent.getIntExtra(android.os.BatteryManager.EXTRA_SCALE, -1); diff --git a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts index 67f02d7..afd1125 100644 --- a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts +++ b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts @@ -31,7 +31,7 @@ export function onNavigatedTo(args: NavigatedData) { // >> broadcast-receiver-ts if (isAndroid) { - // use tns-platform-dclarations to access native APIs (e.g. android.content.Intent) + // use tns-platform-declarations to access native APIs (e.g. android.content.Intent) let receiverCallback = (androidContext, intent) => { const level = intent.getIntExtra(android.os.BatteryManager.EXTRA_LEVEL, -1); const scale = intent.getIntExtra(android.os.BatteryManager.EXTRA_SCALE, -1); From 8899f5c894240949ee2a3583b572636678137ed9 Mon Sep 17 00:00:00 2001 From: Janos Hrubos <33330538+janoshrubos@users.noreply.github.com> Date: Sun, 14 Mar 2021 18:42:04 +0100 Subject: [PATCH 8/8] feat: NS7 update (#189) * Update runtime * app migration * feat:ns7 update * chore: delete trace * fix: add missing snippets * fix: dialogs * fix: Enums * fix: bugfixes * fix: DeepLinkData import * chore: remove crash flags * chore: optimize imports * fix: missing enums * fix: AndroidTransitionType import --- .eslintrc | 3 +- CONTRIBUTE.md | 8 +- app/app.js | 37 ++- app/app.ts | 26 +- app/delegate/my-delegate.js | 8 +- app/home/first-page.js | 80 ++--- app/home/first-ts-page.ts | 63 ++-- app/home/second-page.js | 3 +- app/home/second-ts-page.ts | 2 +- app/link.js | 10 +- app/links-view-model.js | 17 +- app/main-page.js | 112 +++---- .../application-settings-page.js | 12 +- .../application-settings/usage/usage-page.js | 26 +- .../usage/usage-ts-page.ts | 32 +- .../android-broadcast-receiver-page.js | 27 +- .../android-broadcast-receiver-ts-page.ts | 22 +- .../application-events-page.js | 55 ++-- .../application-events-ts-page.ts | 47 ++- .../application/application-page.js | 31 +- .../check-platform/check-platform-page.js | 13 +- .../check-platform/check-platform-ts-page.ts | 10 +- .../ios-notification-observer-page.js | 32 +- .../ios-notification-observer-ts-page.ts | 19 +- .../color/color-page.js | 12 +- .../color/usage/usage-page.js | 9 +- .../color/usage/usage-ts-page.ts | 8 +- .../connectivity/connectivity-page.js | 12 +- .../connectivity/usage/usage-page.js | 32 +- .../connectivity/usage/usage-ts-page.ts | 28 +- .../console/console-page.js | 12 +- .../console/usage/usage-page.js | 7 +- .../fetch/fetch-page.js | 16 +- .../fetch/get/get-page.js | 8 +- .../fetch/get/get-ts-page.ts | 2 +- .../fetch/post/post-page.js | 9 +- .../fetch/post/post-ts-page.ts | 2 +- .../file-system/delete/delete-page.js | 27 +- .../file-system/delete/delete-ts-page.ts | 4 +- .../file-system/file-system-page.js | 28 +- .../file-system/paths/paths-page.js | 38 ++- .../file-system/paths/paths-ts-page.ts | 5 +- .../file-system/read/read-page.js | 35 +-- .../file-system/read/read-ts-page.ts | 8 +- .../file-system/update/update-page.js | 19 +- .../file-system/update/update-ts-page.ts | 9 +- .../file-system/usage/usage-page.js | 13 +- .../file-system/usage/usage-ts-page.ts | 5 +- .../fps-meter/fps-meter-page.js | 12 +- .../fps-meter/usage/usage-page.js | 17 +- .../fps-meter/usage/usage-ts-page.ts | 2 +- .../http/get/get-page.js | 31 +- .../http/get/get-ts-page.ts | 24 +- .../http/http-page.js | 16 +- .../http/post/post-page.js | 14 +- .../http/post/post-ts-page.ts | 7 +- .../image-source/image-source-page.js | 16 +- .../load-image/load-image-page.js | 20 +- .../load-image/load-image-ts-page.ts | 15 +- .../save-image/save-image-page.js | 58 ++-- .../save-image/save-image-ts-page.ts | 10 +- .../observable-array/basics/basics-page.js | 6 +- .../observable-array/basics/basics-ts-page.ts | 9 +- .../observable-array/observable-array-page.js | 12 +- .../observable/basics/basics-page.js | 7 +- .../observable/basics/basics-ts-page.ts | 4 +- .../mvvm-pattern/main-view-model.js | 5 +- .../mvvm-pattern/main-view-ts-model.ts | 2 +- .../mvvm-pattern/mvvm-pattern-page.js | 4 +- .../mvvm-pattern/mvvm-pattern-ts-page.ts | 4 +- .../observable/observable-page.js | 28 +- .../parent-binding/parent-binding-page.js | 6 +- .../parent-binding/parent-binding-ts-page.ts | 3 +- .../plain-object-binding-page.js | 6 +- .../plain-object-binding-ts-page.ts | 3 +- .../observable/two-way/two-way-page.js | 8 +- .../observable/two-way/two-way-ts-page.ts | 4 +- .../platform/platform-page.js | 12 +- .../platform/usage/usage-page.js | 38 +-- .../platform/usage/usage-ts-page.ts | 30 +- .../timer/setting-interval/interval-page.js | 18 +- .../setting-interval/interval-ts-page.ts | 14 +- .../timer/setting-timeout/timeout-page.js | 13 +- .../timer/setting-timeout/timeout-ts-page.ts | 5 +- .../timer/timer-page.js | 16 +- .../custom-trace-writer-page.js | 29 +- .../custom-trace-writer-ts-page.ts | 26 +- .../trace/trace-page.js | 16 +- .../trace-specific-categories-page.js | 76 +++-- .../trace-specific-categories-ts-page.ts | 61 ++-- .../virtual-array/basics/basics-page.js | 6 +- .../virtual-array/basics/basics-ts-page.ts | 2 +- .../virtual-array/virtual-array-page.js | 12 +- .../xml-parser/basics/basics-page.js | 20 +- .../xml-parser/basics/basics-page.xml | 2 +- .../xml-parser/basics/basics-ts-page.ts | 14 +- .../xml-parser/basics/basics-ts-page.xml | 2 +- .../xml-parser/xml-parser-page.js | 12 +- .../icon-fonts/icon-fonts-page.js | 14 +- .../tips-and-tricks/tips-and-tricks-page.js | 5 +- .../tips-and-tricks-ts-page.ts | 3 +- .../modal-view/basics/basics-page.js | 6 +- .../modal-view/basics/basics-ts-page.ts | 4 +- .../modal-view/basics/modal-ts-view-page.ts | 4 +- .../modal-view/basics/modal-view-page.js | 10 +- .../modal-view/custom-actionbar/main-page.js | 4 +- .../custom-actionbar/main-ts-page.ts | 4 +- .../custom-actionbar/modal-view-page.js | 6 +- .../first-modal-ts-view-page.ts | 2 +- .../modal-navigation/first-modal-view-page.js | 9 +- .../modal-view/modal-navigation/main-page.js | 4 +- .../modal-navigation/main-ts-page.ts | 6 +- .../modal-view/modal-navigation/modal-root.js | 8 +- .../modal-navigation/modal-ts-root.ts | 2 +- .../second-modal-ts-view-page.ts | 2 +- .../second-modal-view-page.js | 6 +- .../modal-view/modal-view-examples-page.js | 20 +- .../action-bar/action-bar-page.js | 36 +-- .../code-behind/code-behind-page.js | 10 +- .../code-behind/code-behind-ts-page.ts | 10 +- .../creating-sidedrawer-button-page.js | 3 +- .../hide-show-actionbar-page.js | 9 +- .../hide-show-actionbar-ts-page.ts | 5 +- .../hiding-action-items-page.js | 15 +- .../hiding-action-items-ts-page.ts | 5 +- .../items-actionbar/items-actionbar-page.js | 10 +- .../items-actionbar-ts-page.ts | 2 +- .../action-bar/styling/styling-page.js | 7 +- .../action-bar/usage/usage-page.js | 10 +- .../action-bar/usage/usage-ts-page.ts | 2 +- .../activity-indicator-page.js | 22 +- .../code-behind/code-behind-page.js | 6 +- .../code-behind/code-behind-ts-page.ts | 6 +- .../tips-and-tricks/tips-and-tricks-page.js | 5 +- .../tips-and-tricks-ts-page.ts | 3 +- .../activity-indicator/usage/usage-page.js | 9 +- .../activity-indicator/usage/usage-ts-page.ts | 4 +- .../animating-properties-page.js | 14 +- .../animating-properties-ts-page.ts | 14 +- .../animations/animations-page.js | 32 +- .../chaining-animations-page.js | 3 +- .../chaining-animations-ts-page.ts | 4 +- .../multiple-views-page.js | 11 +- .../multiple-views-ts-page.ts | 6 +- .../origin-properties/property-origin-page.js | 14 +- .../property-origin-ts-page.ts | 9 +- .../width-height-properties-page.js | 8 +- .../width-height-properties-page.xml | 2 +- .../width-height-properties-ts-page.ts | 7 +- .../width-height-properties-ts-page.xml | 4 +- .../bottom-navigation-page.js | 12 +- .../button/button-page.js | 18 +- .../button/code-behind/code-behind-page.js | 6 +- .../button/code-behind/code-behind-ts-page.ts | 4 +- .../button/usage/usage-page.js | 10 +- .../button/usage/usage-ts-page.ts | 3 +- .../code-behind/code-behind-page.js | 6 +- .../code-behind/code-behind-ts-page.ts | 5 +- .../date-picker/date-picker-page.js | 18 +- .../date-picker/usage/usage-page.js | 9 +- .../date-picker/usage/usage-ts-page.ts | 4 +- .../dialogs/action-dialog/action-page.js | 3 +- .../dialogs/action-dialog/action-ts-page.ts | 2 +- .../dialogs/alert-dialog/alert-page.js | 3 +- .../dialogs/alert-dialog/alert-ts-page.ts | 2 +- .../dialogs/confirm-dialog/confirm-page.js | 3 +- .../dialogs/confirm-dialog/confirm-ts-page.ts | 2 +- .../dialogs/dialogs-page.js | 28 +- .../dialogs/login-dialog/login-page.js | 3 +- .../dialogs/login-dialog/login-ts-page.ts | 2 +- .../dialogs/prompt-dialog/prompt-page.js | 3 +- .../dialogs/prompt-dialog/prompt-ts-page.ts | 2 +- .../code-behind/code-behind-page.js | 12 +- .../code-behind/code-behind-ts-page.ts | 20 +- .../formatted-string/formatted-string-page.js | 14 +- .../basic-navigation/navigation-page.xml | 4 +- .../basic-navigation/navigation-ts-page.xml | 4 +- .../dynamic-navigation-page.js | 12 +- .../dynamic-navigation-page.xml | 2 +- .../dynamic-navigation-ts-page.ts | 7 +- .../dynamic-navigation-ts-page.xml | 4 +- .../frame/frame-page.js | 30 +- .../frame-reference/frame-reference-page.js | 8 +- .../frame-reference-ts-page.ts | 8 +- .../navigation-context-page.js | 4 +- .../navigation-ts-context-page.ts | 5 +- .../gestures/double-tap/double-tap-page.js | 4 +- .../gestures/double-tap/double-tap-ts-page.ts | 4 +- .../gestures/gestures-page.js | 40 +-- .../gestures/long-press/long-press-page.js | 3 +- .../gestures/long-press/long-press-ts-page.ts | 4 +- .../gestures/pan/pan-page.js | 9 +- .../gestures/pan/pan-ts-page.ts | 6 +- .../gestures/pinch/pinch-page.js | 9 +- .../gestures/pinch/pinch-ts-page.ts | 6 +- .../gestures/rotation/rotation-page.js | 11 +- .../gestures/rotation/rotation-ts-page.ts | 7 +- .../gestures/swipe/swipe-page.js | 10 +- .../gestures/swipe/swipe-ts-page.ts | 6 +- .../gestures/tap/tap-page.js | 4 +- .../gestures/tap/tap-ts-page.ts | 4 +- .../gestures/touch/touch-page.js | 9 +- .../gestures/touch/touch-ts-page.ts | 6 +- .../html-view/html-view-page.js | 12 +- .../html-view/usage/usage-page.js | 8 +- .../html-view/usage/usage-ts-page.ts | 8 +- .../image-cache/basics/basics-page.js | 17 +- .../image-cache/basics/basics-ts-page.ts | 14 +- .../image-cache/image-cache-page.js | 12 +- .../image/image-page.js | 16 +- .../image/styling/styling-page.js | 5 +- .../image/styling/styling-ts-page.ts | 4 +- .../image/usage/usage-page.js | 6 +- .../image/usage/usage-ts-page.ts | 3 +- .../label/code-behind/code-behind-page.js | 18 +- .../label/code-behind/code-behind-ts-page.ts | 6 +- .../label/label-page.js | 16 +- .../label/usage/usage-page.js | 6 +- .../label/usage/usage-ts-page.ts | 3 +- .../absolute-layout/absolute-layout-page.js | 9 +- .../absolute-layout-ts-page.ts | 5 +- .../layouts/dock-layout/dock-layout-page.js | 10 +- .../dock-layout/dock-layout-ts-page.ts | 5 +- .../layouts/grid-layout/grid-layout-page.js | 9 +- .../grid-layout/grid-layout-ts-page.ts | 5 +- .../layouts/layouts-page.js | 40 +-- .../layouts/stack-layout/stack-layout-page.js | 8 +- .../stack-layout/stack-layout-ts-page.ts | 6 +- .../layouts/wrap-layout/wrap-layout-page.js | 8 +- .../wrap-layout/wrap-layout-ts-page.ts | 6 +- .../code-behind/code-behind-page.js | 6 +- .../code-behind/code-behind-ts-page.ts | 5 +- .../list-picker/list-picker-page.js | 20 +- .../list-picker/styling/styling-page.js | 6 +- .../list-picker/styling/styling-ts-page.ts | 3 +- .../tips-and-tricks/tips-and-tricks-page.js | 21 +- .../tips-and-tricks-ts-page.ts | 4 +- .../list-picker/usage/usage-page.js | 9 +- .../list-picker/usage/usage-ts-page.ts | 5 +- .../list-view/basics/article.md | 2 +- .../list-view/basics/basics-page.js | 15 +- .../list-view/basics/basics-ts-page.ts | 4 +- .../list-view/code-behind/code-behind-page.js | 19 +- .../code-behind/code-behind-ts-page.ts | 6 +- .../list-view/events/events-page.js | 16 +- .../list-view/events/events-ts-page.ts | 5 +- .../list-view/list-view-page.js | 26 +- ...ltiple-templates-selector-function-page.js | 59 ++-- ...ple-templates-selector-function-ts-page.ts | 3 +- .../multiple-templates-page.js | 53 ++-- .../page/page-creation/page-creation-page.js | 11 +- .../page-creation/page-creation-ts-page.ts | 7 +- .../page/page-events/page-events-page.js | 23 +- .../page/page-events/page-events-ts-page.ts | 3 +- app/ns-ui-widgets-category/page/page-page.js | 20 +- .../page-reference/page-reference-page.js | 22 +- .../page-reference/page-reference-ts-page.ts | 10 +- .../placeholder/basics/basics-page.js | 14 +- .../placeholder/basics/basics-ts-page.ts | 7 +- .../code-behind/code-behind-page.js | 15 +- .../code-behind/code-behind-ts-page.ts | 7 +- .../placeholder/placeholder-page.js | 20 +- .../platform-files-page.android.js | 4 +- .../platform-files/platform-files-page.ios.js | 4 +- .../progress/code-behind/code-behind-page.js | 12 +- .../code-behind/code-behind-ts-page.ts | 6 +- .../progress/progress-page.js | 22 +- .../tips-and-tricks/tips-and-tricks-page.js | 11 +- .../tips-and-tricks-ts-page.ts | 4 +- .../progress/usage/usage-page.js | 4 +- .../progress/usage/usage-ts-page.ts | 3 +- .../repeater/basics/basics-page.js | 16 +- .../repeater/basics/basics-ts-page.ts | 5 +- .../repeater/code-behind/code-behind-page.js | 15 +- .../code-behind/code-behind-ts-page.ts | 6 +- .../repeater/repeater-page.js | 16 +- .../scroll-view/scroll-view-page.js | 14 +- .../tips-and-tricks/tips-and-tricks-page.js | 3 +- .../tips-and-tricks-ts-page.ts | 3 +- .../code-behind/code-behind-page.js | 21 +- .../code-behind/code-behind-ts-page.ts | 11 +- .../search-bar/search-bar-page.js | 18 +- .../search-bar/usage/usage-page.js | 15 +- .../search-bar/usage/usage-ts-page.ts | 4 +- .../segmented-bar/basics/basics-page.js | 10 +- .../segmented-bar/basics/basics-ts-page.ts | 3 +- .../code-behind/code-behind-page.js | 18 +- .../code-behind/code-behind-ts-page.ts | 6 +- .../segmented-bar/segmented-bar-page.js | 20 +- .../segmented-bar/views/views-page.js | 10 +- .../segmented-bar/views/views-ts-page.ts | 4 +- .../slider/code-behind/code-behind-page.js | 12 +- .../slider/code-behind/code-behind-ts-page.ts | 6 +- .../slider/slider-page.js | 17 +- .../slider/usage/usage-page.js | 3 +- .../slider/usage/usage-ts-page.ts | 2 +- .../styling/basics/basics-page.js | 7 +- .../styling/basics/basics-ts-page.ts | 5 +- .../styling/border-basics/basics-page.js | 6 +- .../border-code-behind/code-behind-page.js | 11 +- .../border-code-behind/code-behind-ts-page.ts | 5 +- .../styling/styling-page.js | 22 +- .../switch/code-behind/code-behind-page.js | 12 +- .../switch/code-behind/code-behind-ts-page.ts | 6 +- .../switch/switch-page.js | 18 +- .../switch/usage/usage-page.js | 3 +- .../switch/usage/usage-ts-page.ts | 2 +- .../tab-view/code-behind/code-behind-page.js | 21 +- .../code-behind/code-behind-ts-page.ts | 8 +- .../tab-view/navigation/navigation-ts-page.ts | 7 +- .../tab-view/navigation/navigation.js | 17 +- .../tab-view/tab-view-page.js | 31 +- app/ns-ui-widgets-category/tabs/tabs-page.js | 12 +- .../code-behind/code-behind-page.js | 14 +- .../code-behind/code-behind-ts-page.ts | 6 +- .../text-field/text-field-page.js | 18 +- .../text-field/usage/usage-page.js | 11 +- .../text-field/usage/usage-ts-page.ts | 4 +- .../text-view/code-behind/code-behind-page.js | 19 +- .../code-behind/code-behind-ts-page.ts | 7 +- .../text-view/text-view-page.js | 16 +- .../text-view/usage/usage-page.js | 11 +- .../text-view/usage/usage-ts-page.ts | 4 +- .../time-picker/basics/basics-page.js | 10 +- .../time-picker/basics/basics-ts-page.ts | 4 +- .../time-picker/binding/binding-page.js | 9 +- .../time-picker/binding/binding-ts-page.ts | 3 +- .../time-format/time-format-page.js | 6 +- .../time-format/time-format-ts-page.ts | 3 +- .../time-picker/time-picker-page.js | 20 +- .../web-view/basics/basics-page.js | 24 +- .../web-view/basics/basics-ts-page.ts | 8 +- .../web-view/events/events-page.js | 20 +- .../web-view/events/events-ts-page.ts | 5 +- .../web-view/gestures/gestures-page.js | 20 +- .../web-view/gestures/gestures-ts-page.ts | 7 +- .../web-view/source-load/source-load-page.js | 16 +- .../source-load/source-load-ts-page.ts | 5 +- .../web-view/web-view-page.js | 24 +- app/package.json | 9 - app/references.d.ts | 2 +- app/shared/deep-link-data.js | 12 +- e2e/examples.js | 6 +- nativescript.config.ts | 11 + nsconfig.json | 1 - package.json | 26 +- reference.d.ts | 3 +- tsconfig.esm.json | 7 - tsconfig.json | 20 +- tsconfig.tns.json | 7 - webpack.config.js | 284 ++++++++++-------- 351 files changed, 2093 insertions(+), 2491 deletions(-) delete mode 100644 app/package.json create mode 100644 nativescript.config.ts delete mode 100644 nsconfig.json delete mode 100644 tsconfig.esm.json delete mode 100644 tsconfig.tns.json diff --git a/.eslintrc b/.eslintrc index a6bbbc8..d3db0e1 100644 --- a/.eslintrc +++ b/.eslintrc @@ -230,6 +230,7 @@ "ecmaVersion": 6, "ecmaFeatures": { "impliedStrict": true - } + }, + "sourceType": "module" } } diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 7b77e50..e6b89f2 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -35,11 +35,10 @@ Set Button in XML ######text.component.js ```JavaScript -var EventData = require("tns-core-modules/data/observable").EventData; -var Button = require("tns-core-modules/ui/button").Button; +import { Button, EventData } from "@nativescript/core"; // >> button-tap-javascript -exports.onTap = function(args) { +export function onTap(args) { var myButton = args.object; console.log(myButton + " was tapped!"); } @@ -49,8 +48,7 @@ exports.onTap = function(args) { ######text.component.ts ```TypeScript -import { EventData } from "tns-core-modules/data/observable"; -import { Button } from "tns-core-modules/ui/button"; +import { Button, EventData } from "@nativescript/core"; // >> button-tap-ts export function onTap(args: EventData) { diff --git a/app/app.js b/app/app.js index de7f4f4..12f00eb 100644 --- a/app/app.js +++ b/app/app.js @@ -1,19 +1,20 @@ -"use strict"; -Object.defineProperty(exports, "__esModule", { value: true }); -var application = require("tns-core-modules/application"); -var platformModule = require("tns-core-modules/platform"); -var applicationSettingsModule = require("tns-core-modules/application-settings"); -var deepLinkDataModule = require("./shared/deep-link-data"); -if (platformModule.isIOS) { - var mydelegate = require("./delegate/my-delegate"); - application.ios.delegate = mydelegate.MyDelegate; +/* +In NativeScript, the app.js file is the entry point to your application. +You can use this file to perform app-level initialization, but the primary +purpose of the file is to pass control to the app’s first module. +*/ +import { Application, ApplicationSettings, isIOS } from "@nativescript/core"; +import { DeepLinkData } from "./shared/deep-link-data"; +if (isIOS) { + const mydelegate = require("./delegate/my-delegate"); + Application.ios.delegate = mydelegate.MyDelegate; } function launchExample() { - var rootView = application.getRootView(); - if (applicationSettingsModule.hasKey("gotoexample")) { - var value = applicationSettingsModule.getString("gotoexample"); + const rootView = Application.getRootView(); + if (ApplicationSettings.hasKey("gotoexample")) { + const value = ApplicationSettings.getString("gotoexample"); if (value !== "") { - applicationSettingsModule.remove("gotoexample"); + ApplicationSettings.remove("gotoexample"); rootView.navigate({ moduleName: value, clearHistory: true @@ -21,13 +22,17 @@ function launchExample() { } } } -application.on(application.resumeEvent, function (args) { +Application.on(Application.resumeEvent, (args) => { if (args.android) { - var dld = new deepLinkDataModule.DeepLinkData("", args.android); + const dld = new DeepLinkData("", args.android); launchExample(); } else if (args.ios) { launchExample(); } }); -application.run({ moduleName: "app-root" }); +Application.run({ moduleName: "app-root" }); +/* +Do not place any code after the application has been started as it will not +be executed on iOS. +*/ diff --git a/app/app.ts b/app/app.ts index 0e355c9..00d6bfb 100644 --- a/app/app.ts +++ b/app/app.ts @@ -3,22 +3,20 @@ In NativeScript, the app.js file is the entry point to your application. You can use this file to perform app-level initialization, but the primary purpose of the file is to pass control to the app’s first module. */ -import * as application from "tns-core-modules/application"; -import * as platformModule from "tns-core-modules/platform"; -import * as applicationSettingsModule from"tns-core-modules/application-settings"; -import {Frame} from "tns-core-modules/ui/frame"; -const deepLinkDataModule = require("./shared/deep-link-data"); -if (platformModule.isIOS) { +import { Application, ApplicationSettings, Frame, isIOS } from "@nativescript/core"; +import { DeepLinkData } from "./shared/deep-link-data"; + +if (isIOS) { const mydelegate = require("./delegate/my-delegate"); - application.ios.delegate = mydelegate.MyDelegate; + Application.ios.delegate = mydelegate.MyDelegate; } function launchExample() { - const rootView: Frame = application.getRootView(); - if (applicationSettingsModule.hasKey("gotoexample")) { - const value = applicationSettingsModule.getString("gotoexample"); + const rootView: Frame = Application.getRootView(); + if (ApplicationSettings.hasKey("gotoexample")) { + const value = ApplicationSettings.getString("gotoexample"); if (value !== "") { - applicationSettingsModule.remove("gotoexample"); + ApplicationSettings.remove("gotoexample"); rootView.navigate({ moduleName: value, clearHistory: true @@ -26,15 +24,15 @@ function launchExample() { } } } -application.on(application.resumeEvent, (args) => { +Application.on(Application.resumeEvent, (args) => { if (args.android) { - const dld = new deepLinkDataModule.DeepLinkData("", args.android); + const dld = new DeepLinkData("", args.android); launchExample(); } else if (args.ios) { launchExample(); } }); -application.run({ moduleName: "app-root" }); +Application.run({ moduleName: "app-root" }); /* Do not place any code after the application has been started as it will not diff --git a/app/delegate/my-delegate.js b/app/delegate/my-delegate.js index e2e67a1..af27f87 100644 --- a/app/delegate/my-delegate.js +++ b/app/delegate/my-delegate.js @@ -1,5 +1,5 @@ -const deepLinkDataModule = require("../shared/deep-link-data"); -const MyDelegate = (function(_super) { +import { DeepLinkData } from "../shared/deep-link-data"; +export const MyDelegate = (function(_super) { __extends(MyDelegate, _super); MyDelegate.ObjCProtocols = [UIApplicationDelegate]; @@ -14,7 +14,7 @@ const MyDelegate = (function(_super) { MyDelegate.prototype.applicationHandleOpenURL = function (application, url) { console.log("MyDelegate.prototype.applicationHandleOpenURL"); - const dld = new deepLinkDataModule.DeepLinkData(url, undefined); + const dld = new DeepLinkData(url, undefined); return true; @@ -23,5 +23,3 @@ const MyDelegate = (function(_super) { return MyDelegate; }(UIResponder)); - -exports.MyDelegate = MyDelegate; diff --git a/app/home/first-page.js b/app/home/first-page.js index f6b5fa4..877f0fe 100644 --- a/app/home/first-page.js +++ b/app/home/first-page.js @@ -1,20 +1,21 @@ // >> frame-navigate-base -const getFrameById = require("tns-core-modules/ui/frame").getFrameById; +import { Frame, Transition } from "@nativescript/core"; + // >> (hide) -exports.navigate = function() { +export function navigate() { // << (hide) - // Example using `getFrameById(frameId)` to get a `Frame` reference + // Example using `Frame.getFrameById(frameId)` to get a `Frame` reference // As an alternative, we could use `topmost()` method or `page.frame` property - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); frame.navigate("home/second-page"); // >> (hide) -}; +} // << (hide) // << frame-navigate-base -exports.navigateByModule = function() { +export function navigateByModule() { // >> frame-navigate-module - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); const navigationEntry = { moduleName: "home/second-page", @@ -23,11 +24,11 @@ exports.navigateByModule = function() { }; frame.navigate(navigationEntry); // << frame-navigate-module -}; +} -exports.navigateWithBackstackVisible = function() { +export function navigateWithBackstackVisible() { // >> frame-navigate-backstackvisible - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); const navigationEntry = { moduleName: "home/second-page", @@ -35,11 +36,11 @@ exports.navigateWithBackstackVisible = function() { }; frame.navigate(navigationEntry); // << frame-navigate-backstackvisible -}; +} -exports.navigateWithClearHistory = function() { +export function navigateWithClearHistory() { // >> frame-navigate-clearhistory - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); const navigationEntry = { moduleName: "home/second-page", @@ -47,11 +48,11 @@ exports.navigateWithClearHistory = function() { }; frame.navigate(navigationEntry); // << frame-navigate-clearhistory -}; +} -exports.navigateWithTransition = function() { +export function navigateWithTransition() { // >> frame-navigate-transitions - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); const navigationEntry = { moduleName: "home/second-page", @@ -67,20 +68,20 @@ exports.navigateWithTransition = function() { // << frame-navigate-transitions // >> frame-navigate-default-transition - // const getFrameById = require("tns-core-modules/ui/frame").getFrameById; - // const myFrame = getFrameById("firstFrame"); + // import { Frame } from "@nativescript/core"; + // const myFrame = Frame.getFrameById("firstFrame"); myFrame.transition = { name: "flip" }; myFrame.navigate("main-page"); // << frame-navigate-default-transition // >> frame-navigate-defailt-transition-app - // const frameModule = require("tns-core-modules/ui/frame"); - frameModule.Frame.defaultTransition = { name: "fade" }; + // import { Frame } from "@nativescript/core"; + Frame.defaultTransition = { name: "fade" }; // << frame-navigate-defailt-transition-app -}; +} -exports.navigatePlatformSpecificTransitions = function() { +export function navigatePlatformSpecificTransitions() { // >> frame-navigate-platform-specific-transitions const navigationEntry = { moduleName: "main-page", @@ -97,15 +98,16 @@ exports.navigatePlatformSpecificTransitions = function() { curve: "easeOut" } }; - const frame = getFrameById("my-frame"); + const frame = Frame.getFrameById("my-frame"); frame.navigate(navigationEntry); // << frame-navigate-platform-specific-transitions -}; +} // >> frame-navigate-custom-transitions-android-ts -const transition = require("tns-core-modules/ui/transition"); +// import { Transition } from "@nativescript/core"; const floatType = java.lang.Float.class.getField("TYPE").get(null); -const CustomTransition = (function (_super) { + +export const CustomTransition = (function (_super) { __extends(CustomTransition, _super); function CustomTransition() { _super.apply(this, arguments); @@ -113,13 +115,13 @@ const CustomTransition = (function (_super) { CustomTransition.prototype.createAndroidAnimator = function(transitionType) { const scaleValues = java.lang.reflect.Array.newInstance(floatType, 2); switch (transitionType) { - case transition.AndroidTransitionType.enter: - case transition.AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.popEnter: scaleValues[0] = 0; scaleValues[1] = 1; break; - case transition.AndroidTransitionType.exit: - case transition.AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.popExit: scaleValues[0] = 1; scaleValues[1] = 0; break; @@ -141,13 +143,12 @@ const CustomTransition = (function (_super) { }; return CustomTransition; -})(transition.Transition); -exports.CustomTransition = CustomTransition; +})(Transition.Transition); // << frame-navigate-custom-transitions-android-ts // >> frame-navigate-custom-transitions-ios-ts -// const transition = require("tns-core-modules/ui/transition"); -const CustomTransitionIOS = (function (_super) { +// import { Transition } from "@nativescript/core"; +export const CustomTransitionIOS = (function (_super) { __extends(CustomTransition, _super); function CustomTransition() { _super.apply(this, arguments); @@ -175,15 +176,14 @@ const CustomTransitionIOS = (function (_super) { }; return CustomTransitionIOS; -})(transition.Transition); -exports.CustomTransitionIOS = CustomTransitionIOS; +})(Transition.Transition); // << frame-navigate-custom-transitions-ios-ts -exports.goBack = function() { +export function goBack() { // >> frame-navigate-go-back - // const getFrameById = require("tns-core-modules/ui/frame").getFrameById; - const myFrame = getFrameById("my-frame"); + // import { Frame } from "@nativescript/core"; + const myFrame = Frame.getFrameById("my-frame"); myFrame.goBack(); // << frame-navigate-go-back -}; +} diff --git a/app/home/first-ts-page.ts b/app/home/first-ts-page.ts index aff3464..2b6d9a6 100644 --- a/app/home/first-ts-page.ts +++ b/app/home/first-ts-page.ts @@ -1,28 +1,24 @@ -import { AnimationCurve } from "tns-core-modules/ui/enums"; -import * as frameModule from "tns-core-modules/ui/frame"; -import { isAndroid, isIOS } from "tns-core-modules/platform"; - // >> frame-navigate-base-ts -import { getFrameById } from "tns-core-modules/ui/frame"; +import { Frame } from "@nativescript/core"; // >> (hide) export function navigate() { // << (hide) - // Example using `getFrameById(frameId)` to get a `Frame` reference + // Example using `Frame.getFrameById(frameId)` to get a `Frame` reference // As an alternative, we could use `topmost()` method or `page.frame` property - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); frame.navigate("home/second-page"); // >> (hide) } // << (hide) // << frame-navigate-base-ts -import { NavigationEntry } from "tns-core-modules/ui/frame"; +import { NavigationEntry } from "@nativescript/core"; export function navigateByModule() { // >> frame-navigate-module-ts - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); - // import { NavigationEntry } from "tns-core-modules/ui/frame"; + // import { NavigationEntry } from "@nativescript/core"; const navigationEntry: NavigationEntry = { moduleName: "home/second-page", context: { info: "something you want to pass to your page" }, @@ -34,9 +30,9 @@ export function navigateByModule() { export function navigateWithBackstackVisible() { // >> frame-navigate-backstackvisible-ts - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); - // import { NavigationEntry } from "tns-core-modules/ui/frame"; + // import { NavigationEntry } from "@nativescript/core"; const navigationEntry: NavigationEntry = { moduleName: "home/second-page", backstackVisible: false @@ -47,9 +43,9 @@ export function navigateWithBackstackVisible() { export function navigateWithClearHistory() { // >> frame-navigate-clearhistory-ts - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); - // import { NavigationEntry } from "tns-core-modules/ui/frame"; + // import { NavigationEntry } from "@nativescript/core"; const navigationEntry: NavigationEntry = { moduleName: "home/second-page", clearHistory: true @@ -58,12 +54,13 @@ export function navigateWithClearHistory() { // << frame-navigate-clearhistory-ts } +import { Enums } from "@nativescript/core"; + export function navigateWithTransition() { // >> frame-navigate-transitions-ts - const frame = getFrameById("my-frame-id"); + const frame = Frame.getFrameById("my-frame-id"); - // import { NavigationEntry } from "tns-core-modules/ui/frame"; - // import { AnimationCurve } from "tns-core-modules/ui/enums"; + // import { Enums, NavigationEntry } from "@nativescript/core"; const navigationEntry: NavigationEntry = { moduleName: "home/second-page", animated: true, @@ -71,7 +68,7 @@ export function navigateWithTransition() { transition: { name: "slide", duration: 380, - curve: AnimationCurve.easeIn + curve: Enums.AnimationCurve.easeIn } }; frame.navigate(navigationEntry); @@ -79,15 +76,15 @@ export function navigateWithTransition() { // >> frame-navigate-default-transition-ts - // const getFrameById = require("tns-core-modules/ui/frame").getFrameById; - // const frame = getFrameById("firstFrame"); + // import { Frame } from "@nativescript/core"; + // const frame = Frame.getFrameById("firstFrame"); frame.transition = { name: "flip" }; frame.navigate("main-page"); // << frame-navigate-default-transition-ts // >> frame-navigate-defailt-transition-app-ts - // import * as frameModule from "tns-core-modules/ui/frame"; - frameModule.Frame.defaultTransition = { name: "fade" }; + // import { Frame } from "@nativescript/core"; + Frame.defaultTransition = { name: "fade" }; // << frame-navigate-defailt-transition-app-ts } @@ -100,21 +97,21 @@ export function navigatePlatformSpecificTransitions() { transitioniOS: { name: "curl", duration: 380, - curve: AnimationCurve.easeInOut + curve: Enums.AnimationCurve.easeInOut }, transitionAndroid: { name: "explode", duration: 300, - curve: AnimationCurve.spring + curve: Enums.AnimationCurve.spring } }; - const frame = getFrameById("my-frame"); + const frame = Frame.getFrameById("my-frame"); frame.navigate(navigationEntry); // << frame-navigate-platform-specific-transitions-ts } // >> frame-navigate-custom-transitions-ios-ts -// import { Transition } from "tns-core-modules/ui/transition"; +// import { Transition } from "@nativescript/core"; declare let UINavigationControllerOperation: any; // or use tns-platform-declarations export class CustomTransitionIOS extends Transition { @@ -159,18 +156,18 @@ export class CustomTransitionIOS extends Transition { // << frame-navigate-custom-transitions-ios-ts // >> frame-navigate-custom-transitions-android-ts -import { Transition, AndroidTransitionType } from "tns-core-modules/ui/transition"; +import { Transition } from "@nativescript/core"; export class CustomTransition extends Transition { public createAndroidAnimator(transitionType: string): android.animation.Animator { const scaleValues = (Array).create("float", 2); switch (transitionType) { - case AndroidTransitionType.enter: - case AndroidTransitionType.popEnter: + case Transition.AndroidTransitionType.enter: + case Transition.AndroidTransitionType.popEnter: scaleValues[0] = 0; scaleValues[1] = 1; break; - case AndroidTransitionType.exit: - case AndroidTransitionType.popExit: + case Transition.AndroidTransitionType.exit: + case Transition.AndroidTransitionType.popExit: scaleValues[0] = 1; scaleValues[1] = 0; break; @@ -197,8 +194,8 @@ export class CustomTransition extends Transition { export function goBack() { // >> frame-navigate-go-back-ts - // import { getFrameById } from "tns-core-modules/ui/frame"; - const myFrame = getFrameById("my-frame"); + // import { Frame } from "@nativescript/core"; + const myFrame = Frame.getFrameById("my-frame"); myFrame.goBack(); // << frame-navigate-go-back-ts } diff --git a/app/home/second-page.js b/app/home/second-page.js index a547ff6..2c5e3c8 100644 --- a/app/home/second-page.js +++ b/app/home/second-page.js @@ -1,5 +1,5 @@ // >> nav-context-receive -function onNavigatedTo(args) { +export function onNavigatedTo(args) { const page = args.object; const navigationContext = page.navigationContext; @@ -8,5 +8,4 @@ function onNavigatedTo(args) { page.bindingContext = navigationContext; } -exports.onNavigatedTo = onNavigatedTo; // << nav-context-receive diff --git a/app/home/second-ts-page.ts b/app/home/second-ts-page.ts index 930fbd7..1362aea 100644 --- a/app/home/second-ts-page.ts +++ b/app/home/second-ts-page.ts @@ -1,5 +1,5 @@ // >> nav-context-receive-ts -import { Page, NavigatedData } from "tns-core-modules/ui/page"; +import { Page, NavigatedData } from "@nativescript/core"; // Event handler for Page "navigatedTo" event attached in details-page.xml e.g. export function onNavigatedTo(args: NavigatedData): void { diff --git a/app/link.js b/app/link.js index 5342e43..87f6f8c 100644 --- a/app/link.js +++ b/app/link.js @@ -1,6 +1,8 @@ -function Link(title, link) { - this.title = title; - this.link = link; +class Link { + constructor(title, link) { + this.title = title; + this.link = link; + } } -module.exports = Link; +export default Link; diff --git a/app/links-view-model.js b/app/links-view-model.js index 5992a74..8485461 100644 --- a/app/links-view-model.js +++ b/app/links-view-model.js @@ -1,6 +1,4 @@ -const observableModule = require("tns-core-modules/data/observable"); -const observableArrayModule = require("tns-core-modules/data/observable-array"); -const frameModule = require("tns-core-modules/ui/frame"); +import { Frame, ObservableArray, fromObject } from "@nativescript/core"; function linksSort(value) { value.sort((a, b) => { @@ -16,24 +14,23 @@ function linksSort(value) { function ListViewLinksModel(info) { info = info || {}; linksSort(info.links); - - const viewModel = new observableModule.fromObject({ - "links": new observableArrayModule.ObservableArray(info.links), + const viewModel = new fromObject({ + "links": new ObservableArray(info.links), "actionBarTitle": info.actionBarTitle, "showTypeScriptExamples": info.showTypeScriptExamples ? info.showTypeScriptExamples : false, - "tsclinks": info.tsclinks ? new observableArrayModule.ObservableArray(info.tsclinks) : undefined + "tsclinks": info.tsclinks ? new ObservableArray(info.tsclinks) : undefined }); viewModel.set("onItemTap", (args) => { const linkItem = viewModel.get("links").getItem(args.index); - frameModule.Frame.topmost().navigate({ + Frame.topmost().navigate({ moduleName: linkItem.link, context: { "title": linkItem.title } }); }); viewModel.set("onSecondItemTap", (args) => { const linkItem = viewModel.get("tsclinks").getItem(args.index); - frameModule.Frame.topmost().navigate({ + Frame.topmost().navigate({ moduleName: linkItem.link, context: { "title": linkItem.title } }); @@ -46,4 +43,4 @@ function ListViewLinksModel(info) { return viewModel; } -module.exports = ListViewLinksModel; +export default ListViewLinksModel; diff --git a/app/main-page.js b/app/main-page.js index 0755626..a7840b2 100644 --- a/app/main-page.js +++ b/app/main-page.js @@ -1,61 +1,62 @@ -const ListViewLinksModel = require("./links-view-model"); -const link = require("./link"); +import Link from "./link"; +import ListViewLinksModel from "./links-view-model"; + const navigationLinks = [ - new link("Observable", "ns-framework-modules-category/observable/observable-page"), - new link("Observable Array", "ns-framework-modules-category/observable-array/observable-array-page"), - new link("Virtual Array", "ns-framework-modules-category/virtual-array/virtual-array-page"), - new link("Application", "ns-framework-modules-category/application/application-page"), - new link("Application Settings", "ns-framework-modules-category/application-settings/application-settings-page"), - new link("Action Bar", "ns-ui-widgets-category/action-bar/action-bar-page"), - new link("ActivityIndicator", "ns-ui-widgets-category/activity-indicator/activity-indicator-page"), - new link("Animations", "ns-ui-widgets-category/animations/animations-page"), - new link("Button", "ns-ui-widgets-category/button/button-page"), - new link("Color", "ns-framework-modules-category/color/color-page"), - new link("Connectivity", "ns-framework-modules-category/connectivity/connectivity-page"), - new link("Console", "ns-framework-modules-category/console/console-page"), - new link("DatePicker", "ns-ui-widgets-category/date-picker/date-picker-page"), - new link("Dialogs", "ns-ui-widgets-category/dialogs/dialogs-page"), - new link("Gestures", "ns-ui-widgets-category/gestures/gestures-page"), - new link("HtmlView", "ns-ui-widgets-category/html-view/html-view-page"), - new link("IconFonts", "ns-ui-category/icon-fonts/icon-fonts-page"), - new link("Image", "ns-ui-widgets-category/image/image-page"), - new link("Image Cache", "ns-ui-widgets-category/image-cache/image-cache-page"), - new link("Layouts", "ns-ui-widgets-category/layouts/layouts-page"), - new link("TimePicker", "ns-ui-widgets-category/time-picker/time-picker-page"), - new link("ScrollView", "ns-ui-widgets-category/scroll-view/scroll-view-page"), - new link("SearchBar", "ns-ui-widgets-category/search-bar/search-bar-page"), - new link("SegmentedBar", "ns-ui-widgets-category/segmented-bar/segmented-bar-page"), - new link("Slider", "ns-ui-widgets-category/slider/slider-page"), - new link("Switch", "ns-ui-widgets-category/switch/switch-page"), - new link("TabView", "ns-ui-widgets-category/tab-view/tab-view-page"), - new link("TextField", "ns-ui-widgets-category/text-field/text-field-page"), - new link("TextView", "ns-ui-widgets-category/text-view/text-view-page"), - new link("WebView", "ns-ui-widgets-category/web-view/web-view-page"), - new link("Style", "ns-ui-widgets-category/styling/styling-page"), - new link("Label", "ns-ui-widgets-category/label/label-page"), - new link("ListPicker", "ns-ui-widgets-category/list-picker/list-picker-page"), - new link("ListView", "ns-ui-widgets-category/list-view/list-view-page"), - new link("Page", "ns-ui-widgets-category/page/page-page"), - new link("Progress", "ns-ui-widgets-category/progress/progress-page"), - new link("Frame", "ns-ui-widgets-category/frame/frame-page"), - new link("Formatted String", "ns-ui-widgets-category/formatted-string/formatted-string-page"), - new link("Trace Module", "ns-framework-modules-category/trace/trace-page"), - new link("Timer Module", "ns-framework-modules-category/timer/timer-page"), - new link("Placeholder", "ns-ui-widgets-category/placeholder/placeholder-page"), - new link("Repeater", "ns-ui-widgets-category/repeater/repeater-page"), - new link("Platform Module", "ns-framework-modules-category/platform/platform-page"), - new link("FPS Meter", "ns-framework-modules-category/fps-meter/fps-meter-page"), - new link("HTTP Module", "ns-framework-modules-category/http/http-page"), - new link("Fetch", "ns-framework-modules-category/fetch/fetch-page"), - new link("ImageSource", "ns-framework-modules-category/image-source/image-source-page"), - new link("File System", "ns-framework-modules-category/file-system/file-system-page"), - new link("Modal view", "ns-ui-category/modal-view/modal-view-examples-page"), - new link("XML Parser", "ns-framework-modules-category/xml-parser/xml-parser-page"), - new link("BottomNavigation", "ns-ui-widgets-category/bottom-navigation/bottom-navigation-page"), - new link("Tabs", "ns-ui-widgets-category/tabs/tabs-page") + new Link("Observable", "ns-framework-modules-category/observable/observable-page"), + new Link("Observable Array", "ns-framework-modules-category/observable-array/observable-array-page"), + new Link("Virtual Array", "ns-framework-modules-category/virtual-array/virtual-array-page"), + new Link("Application", "ns-framework-modules-category/application/application-page"), + new Link("Application Settings", "ns-framework-modules-category/application-settings/application-settings-page"), + new Link("Action Bar", "ns-ui-widgets-category/action-bar/action-bar-page"), + new Link("ActivityIndicator", "ns-ui-widgets-category/activity-indicator/activity-indicator-page"), + new Link("Animations", "ns-ui-widgets-category/animations/animations-page"), + new Link("Button", "ns-ui-widgets-category/button/button-page"), + new Link("Color", "ns-framework-modules-category/color/color-page"), + new Link("Connectivity", "ns-framework-modules-category/connectivity/connectivity-page"), + new Link("Console", "ns-framework-modules-category/console/console-page"), + new Link("DatePicker", "ns-ui-widgets-category/date-picker/date-picker-page"), + new Link("Dialogs", "ns-ui-widgets-category/dialogs/dialogs-page"), + new Link("Gestures", "ns-ui-widgets-category/gestures/gestures-page"), + new Link("HtmlView", "ns-ui-widgets-category/html-view/html-view-page"), + new Link("IconFonts", "ns-ui-category/icon-fonts/icon-fonts-page"), + new Link("Image", "ns-ui-widgets-category/image/image-page"), + new Link("Image Cache", "ns-ui-widgets-category/image-cache/image-cache-page"), + new Link("Layouts", "ns-ui-widgets-category/layouts/layouts-page"), + new Link("TimePicker", "ns-ui-widgets-category/time-picker/time-picker-page"), + new Link("ScrollView", "ns-ui-widgets-category/scroll-view/scroll-view-page"), + new Link("SearchBar", "ns-ui-widgets-category/search-bar/search-bar-page"), + new Link("SegmentedBar", "ns-ui-widgets-category/segmented-bar/segmented-bar-page"), + new Link("Slider", "ns-ui-widgets-category/slider/slider-page"), + new Link("Switch", "ns-ui-widgets-category/switch/switch-page"), + new Link("TabView", "ns-ui-widgets-category/tab-view/tab-view-page"), + new Link("TextField", "ns-ui-widgets-category/text-field/text-field-page"), + new Link("TextView", "ns-ui-widgets-category/text-view/text-view-page"), + new Link("WebView", "ns-ui-widgets-category/web-view/web-view-page"), + new Link("Style", "ns-ui-widgets-category/styling/styling-page"), + new Link("Label", "ns-ui-widgets-category/label/label-page"), + new Link("ListPicker", "ns-ui-widgets-category/list-picker/list-picker-page"), + new Link("ListView", "ns-ui-widgets-category/list-view/list-view-page"), + new Link("Page", "ns-ui-widgets-category/page/page-page"), + new Link("Progress", "ns-ui-widgets-category/progress/progress-page"), + new Link("Frame", "ns-ui-widgets-category/frame/frame-page"), + new Link("Formatted String", "ns-ui-widgets-category/formatted-string/formatted-string-page"), + new Link("Trace Module", "ns-framework-modules-category/trace/trace-page"), + new Link("Timer Module", "ns-framework-modules-category/timer/timer-page"), + new Link("Placeholder", "ns-ui-widgets-category/placeholder/placeholder-page"), + new Link("Repeater", "ns-ui-widgets-category/repeater/repeater-page"), + new Link("Platform Module", "ns-framework-modules-category/platform/platform-page"), + new Link("FPS Meter", "ns-framework-modules-category/fps-meter/fps-meter-page"), + new Link("HTTP Module", "ns-framework-modules-category/http/http-page"), + new Link("Fetch", "ns-framework-modules-category/fetch/fetch-page"), + new Link("ImageSource", "ns-framework-modules-category/image-source/image-source-page"), + new Link("File System", "ns-framework-modules-category/file-system/file-system-page"), + new Link("Modal view", "ns-ui-category/modal-view/modal-view-examples-page"), + new Link("XML Parser", "ns-framework-modules-category/xml-parser/xml-parser-page"), + new Link("BottomNavigation", "ns-ui-widgets-category/bottom-navigation/bottom-navigation-page"), + new Link("Tabs", "ns-ui-widgets-category/tabs/tabs-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new ListViewLinksModel({ links: navigationLinks, @@ -63,4 +64,3 @@ function onNavigatingTo(args) { }); page.bindingContext = vm; } -exports.onNavigatingTo = onNavigatingTo; diff --git a/app/ns-framework-modules-category/application-settings/application-settings-page.js b/app/ns-framework-modules-category/application-settings/application-settings-page.js index 1a083a3..21b4c22 100644 --- a/app/ns-framework-modules-category/application-settings/application-settings-page.js +++ b/app/ns-framework-modules-category/application-settings/application-settings-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/application-settings/usage/usage-page") + new Link("Usage", "ns-framework-modules-category/application-settings/usage/usage-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/application-settings/usage/usage-ts-page") + new Link("Usage", "ns-framework-modules-category/application-settings/usage/usage-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/application-settings/usage/usage-page.js b/app/ns-framework-modules-category/application-settings/usage/usage-page.js index b25bda4..44aa09f 100644 --- a/app/ns-framework-modules-category/application-settings/usage/usage-page.js +++ b/app/ns-framework-modules-category/application-settings/usage/usage-page.js @@ -1,29 +1,29 @@ // >> app-settings-code-js -const appSettings = require("tns-core-modules/application-settings"); +import { ApplicationSettings } from "@nativescript/core"; -function onNavigatingTo(args) { - appSettings.setBoolean("isTurnedOn", true); - appSettings.setString("username", "Wolfgang"); - appSettings.setNumber("locationX", 54.321); +export function onNavigatingTo(args) { + ApplicationSettings.setBoolean("isTurnedOn", true); + ApplicationSettings.setString("username", "Wolfgang"); + ApplicationSettings.setNumber("locationX", 54.321); - const isTurnedOn = appSettings.getBoolean("isTurnedOn"); - const username = appSettings.getString("username"); - const locationX = appSettings.getNumber("locationX"); + const isTurnedOn = ApplicationSettings.getBoolean("isTurnedOn"); + const username = ApplicationSettings.getString("username"); + const locationX = ApplicationSettings.getNumber("locationX"); // Will return "No string value" if there is no value for "noSuchKey" - const someKey = appSettings.getString("noSuchKey", "No string value"); + const someKey = ApplicationSettings.getString("noSuchKey", "No string value"); // Will return false if there is no key with name "noSuchKey" - const isKeExisting = appSettings.hasKey("noSuchKey"); + const isKeExisting = ApplicationSettings.hasKey("noSuchKey"); } -exports.onNavigatingTo = onNavigatingTo; + function onClear() { // Removing a single entry via its key name - appSettings.remove("isTurnedOn"); + ApplicationSettings.remove("isTurnedOn"); // Clearing the whole application-settings for this app - appSettings.clear(); + ApplicationSettings.clear(); } // << app-settings-code-js diff --git a/app/ns-framework-modules-category/application-settings/usage/usage-ts-page.ts b/app/ns-framework-modules-category/application-settings/usage/usage-ts-page.ts index 93f8db7..4bb5c11 100644 --- a/app/ns-framework-modules-category/application-settings/usage/usage-ts-page.ts +++ b/app/ns-framework-modules-category/application-settings/usage/usage-ts-page.ts @@ -1,37 +1,27 @@ // >> app-settings-code-ts -import { - getBoolean, - setBoolean, - getNumber, - setNumber, - getString, - setString, - hasKey, - remove, - clear -} from "tns-core-modules/application-settings"; +import { ApplicationSettings } from "@nativescript/core"; export function onNavigatingTo(args) { - setBoolean("isTurnedOn", true); - setString("username", "Wolfgang"); - setNumber("locationX", 54.321); + ApplicationSettings.setBoolean("isTurnedOn", true); + ApplicationSettings.setString("username", "Wolfgang"); + ApplicationSettings.setNumber("locationX", 54.321); - const isTurnedOn: boolean = getBoolean("isTurnedOn"); - const username: string = getString("username"); - const locationX: number = getNumber("locationX"); + const isTurnedOn: boolean = ApplicationSettings.getBoolean("isTurnedOn"); + const username: string = ApplicationSettings.getString("username"); + const locationX: number = ApplicationSettings.getNumber("locationX"); // Will return "No string value" if there is no value for "noSuchKey" - const someKey: string = getString("noSuchKey", "No string value"); + const someKey: string = ApplicationSettings.getString("noSuchKey", "No string value"); // Will return false if there is no key with name "noSuchKey" - let isKeExisting: boolean = hasKey("noSuchKey"); + let isKeExisting: boolean = ApplicationSettings.hasKey("noSuchKey"); } function onClear() { // Removing a single entry via its key name - remove("isTurnedOn"); + ApplicationSettings.remove("isTurnedOn"); // Clearing the whole application-settings for this app - clear(); + ApplicationSettings.clear(); } // << app-settings-code-ts diff --git a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js index cbae814..8ad9565 100644 --- a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js +++ b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page.js @@ -1,24 +1,21 @@ - -const applicationModule = require("tns-core-modules/application"); -const Observable = require("tns-core-modules/data/observable").Observable; -const platformModule = require("tns-core-modules/platform"); +import { AndroidApplication, Observable, isAndroid } from "@nativescript/core"; let vm; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.actionBar.title = ""; vm = new Observable(); vm.set("info", "Using Android Broadcast Receiver \nto check the battery life"); vm.set("batteryLife", "0"); - vm.set("isAndroid", platformModule.isAndroid); + vm.set("isAndroid", isAndroid); page.bindingContext = vm; page.actionBar.title = args.context.title; } -exports.onNavigatingTo = onNavigatingTo; -function onNavigatedTo(args) { + +export function onNavigatedTo(args) { vm.set("actionBarTitle", args.context.actionBarTitle); // >> broadcast-receiver - if (platformModule.isAndroid) { + if (isAndroid) { // use tns-platform-declarations to acces native APIs (e.g. android.content.Intent) const receiverCallback = (androidContext, intent) => { const level = intent.getIntExtra(android.os.BatteryManager.EXTRA_LEVEL, -1); @@ -27,19 +24,19 @@ function onNavigatedTo(args) { vm.set("batteryLife", percent.toString()); }; - applicationModule.android.registerBroadcastReceiver( + AndroidApplication.android.registerBroadcastReceiver( android.content.Intent.ACTION_BATTERY_CHANGED, receiverCallback ); } // << broadcast-receiver } -exports.onNavigatedTo = onNavigatedTo; -function onUnloaded() { - if (platformModule.isAndroid) { + +export function onUnloaded() { + if (isAndroid) { // >> broadcast-receiver-remove - applicationModule.android.unregisterBroadcastReceiver(android.content.Intent.ACTION_BATTERY_CHANGED); + AndroidApplication.android.unregisterBroadcastReceiver(android.content.Intent.ACTION_BATTERY_CHANGED); // << broadcast-receiver-remove } } -exports.onUnloaded = onUnloaded; + diff --git a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts index afd1125..d0baf93 100644 --- a/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts +++ b/app/ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page.ts @@ -1,9 +1,5 @@ -import * as applicationModule from "tns-core-modules/application"; -import { android as androidApp } from "tns-core-modules/application"; -import { Observable } from "tns-core-modules/data/observable"; -import { isAndroid } from "tns-core-modules/platform"; -import { Page, NavigatedData } from "tns-core-modules/ui/page"; +import { Application, NavigatedData, Observable, Page, isAndroid } from "@nativescript/core"; let vm; export function onNavigatingTo(args: NavigatedData) { @@ -21,12 +17,12 @@ export function onNavigatedTo(args: NavigatedData) { vm.set("actionBarTitle", args.context.actionBarTitle); // >> app-class-properties - // import { android as androidApp } from "tns-core-modules/application"; - let isPaused = androidApp.paused; // e.g. false - let packageName = androidApp.packageName; // The package ID e.g. org.nativescript.nativescriptsdkexamplesng - let nativeApp = androidApp.nativeApp; // The native APplication reference - let foregroundActivity = androidApp.foregroundActivity; // The current Activity reference - let context = androidApp.context; // The current Android context + // import { Application } from "@nativescript/core"; + let isPaused = Application.android.paused; // e.g. false + let packageName = Application.android.packageName; // The package ID e.g. org.nativescript.nativescriptsdkexamplesng + let nativeApp = Application.android.nativeApp; // The native Application reference + let foregroundActivity = Application.android.foregroundActivity; // The current Activity reference + let context = Application.android.context; // The current Android context // << app-class-properties // >> broadcast-receiver-ts @@ -39,7 +35,7 @@ export function onNavigatedTo(args: NavigatedData) { vm.set("batteryLife", percent.toString()); }; - applicationModule.android.registerBroadcastReceiver( + Application.android.registerBroadcastReceiver( android.content.Intent.ACTION_BATTERY_CHANGED, receiverCallback ); @@ -50,7 +46,7 @@ export function onNavigatedTo(args: NavigatedData) { export function onUnloaded() { if (isAndroid) { // >> broadcast-receiver-remove-ts - applicationModule.android.unregisterBroadcastReceiver(android.content.Intent.ACTION_BATTERY_CHANGED); + Application.android.unregisterBroadcastReceiver(android.content.Intent.ACTION_BATTERY_CHANGED); // << broadcast-receiver-remove-ts } } diff --git a/app/ns-framework-modules-category/application/application-events/application-events-page.js b/app/ns-framework-modules-category/application/application-events/application-events-page.js index 44424a2..3d3726a 100644 --- a/app/ns-framework-modules-category/application/application-events/application-events-page.js +++ b/app/ns-framework-modules-category/application/application-events/application-events-page.js @@ -1,8 +1,7 @@ // >> application-import -const applicationModule = require("tns-core-modules/application"); +import { Application } from "@nativescript/core"; // << application-import -const Observable = require("tns-core-modules/data/observable").Observable; -const enums = require("ui/enums"); +import { Observable, Enums } from "@nativescript/core"; let vm; let launchListener; let suspendListener; @@ -13,28 +12,28 @@ let lowMemoryListener; let orientationChangedListener; let uncaughtErrorListener; -const onNavigatingTo = (args) => { +export const onNavigatingTo = (args) => { const page = args.object; vm = new Observable(); vm.set("actionBarTitle", args.context.actionBarTitle); vm.set("info", "Refer to the code-behind files \nfor Application Events snippets"); - if (applicationModule.android) { - const activity = applicationModule.android.foregroundActivity; + if (Application.android) { + const activity = Application.android.foregroundActivity; const orientationEnum = activity.getResources().getConfiguration().orientation; - vm.set("orientation", (orientationEnum === 1 ? enums.DeviceOrientation.portrait : enums.DeviceOrientation.landscape)); + vm.set("orientation", (orientationEnum === 1 ? Enums.DeviceOrientation.portrait : Enums.DeviceOrientation.landscape)); vm.set("resumeEvent", ""); vm.set("resumeEvent", ""); vm.set("launchEvent", ""); vm.set("displayedEvent", ""); - } else if (applicationModule.ios) { + } else if (Application.ios) { vm.set("orientation", "portrait"); } page.bindingContext = vm; page.actionBar.title = args.context.title; }; -exports.onNavigatingTo = onNavigatingTo; -const onGridLoaded = (args) => { + +export const onGridLoaded = (args) => { // >> application-events-launch launchListener = (args) => { // The root view for this Window on iOS or Activity for Android. @@ -43,7 +42,7 @@ const onGridLoaded = (args) => { console.log("The appication was launched!"); vm.set("resumeEvent", "The appication was launched!"); }; - applicationModule.on(applicationModule.launchEvent, launchListener); + Application.on(Application.launchEvent, launchListener); // << application-events-launch // >> application-events-suspend @@ -51,7 +50,7 @@ const onGridLoaded = (args) => { console.log("The appication was suspended!"); vm.set("suspendEvent", "The appication was suspended!"); }; - applicationModule.on(applicationModule.suspendEvent, suspendListener); + Application.on(Application.suspendEvent, suspendListener); // << application-events-suspend // >> application-events-resume @@ -59,14 +58,14 @@ const onGridLoaded = (args) => { console.log("The appication was resumed!"); vm.set("resumeEvent", "The appication was resumed!"); }; - applicationModule.on(applicationModule.resumeEvent, resumeListener); + Application.on(Application.resumeEvent, resumeListener); // << application-events-resume // >> application-events-exit exitListener = (args) => { console.log("The appication was closed!"); }; - applicationModule.on(applicationModule.exitEvent, exitListener); + Application.on(Application.exitEvent, exitListener); // << application-events-exit // >> application-events-displayed @@ -74,7 +73,7 @@ const onGridLoaded = (args) => { console.log("NativeScript displayedEvent!"); vm.set("displayedEvent", "The appication is displayed!"); }; - applicationModule.on(applicationModule.displayedEvent, displayedListener); + Application.on(Application.displayedEvent, displayedListener); // << application-events-displayed // >> application-events-low-memory @@ -82,7 +81,7 @@ const onGridLoaded = (args) => { // the instance that has raidsed the event console.log("Instance: ", args.object); }; - applicationModule.on(applicationModule.lowMemoryEvent, lowMemoryListener); + Application.on(Application.lowMemoryEvent, lowMemoryListener); // << application-events-low-memory // >> application-events-orientation @@ -91,7 +90,7 @@ const onGridLoaded = (args) => { console.log("Orientation: ", args.newValue); vm.set("orientation", args.newValue); }; - applicationModule.on(applicationModule.orientationChangedEvent, orientationChangedListener); + Application.on(Application.orientationChangedEvent, orientationChangedListener); // << application-events-orientation // >> application-events-error @@ -99,21 +98,19 @@ const onGridLoaded = (args) => { // UnhandledErrorEventData.error: NativeScriptError console.log("NativeScript Error: ", args.error); }; - applicationModule.on(applicationModule.uncaughtErrorEvent, uncaughtErrorListener); + Application.on(Application.uncaughtErrorEvent, uncaughtErrorListener); // << application-events-error }; -exports.onGridLoaded = onGridLoaded; -const onGridUnloaded = () => { +export const onGridUnloaded = () => { // >> application-events-off - applicationModule.off(applicationModule.launchEvent, launchListener); - applicationModule.off(applicationModule.resumeEvent, resumeListener); - applicationModule.off(applicationModule.suspendEvent, suspendListener); - applicationModule.off(applicationModule.exitEvent, exitListener); - applicationModule.off(applicationModule.displayedEvent, displayedListener); - applicationModule.off(applicationModule.lowMemoryEvent, lowMemoryListener); - applicationModule.off(applicationModule.orientationChangedEvent, orientationChangedListener); - applicationModule.off(applicationModule.uncaughtErrorEvent, uncaughtErrorListener); + Application.off(Application.launchEvent, launchListener); + Application.off(Application.resumeEvent, resumeListener); + Application.off(Application.suspendEvent, suspendListener); + Application.off(Application.exitEvent, exitListener); + Application.off(Application.displayedEvent, displayedListener); + Application.off(Application.lowMemoryEvent, lowMemoryListener); + Application.off(Application.orientationChangedEvent, orientationChangedListener); + Application.off(Application.uncaughtErrorEvent, uncaughtErrorListener); // << application-events-off }; -exports.onGridUnloaded = onGridUnloaded; diff --git a/app/ns-framework-modules-category/application/application-events/application-events-ts-page.ts b/app/ns-framework-modules-category/application/application-events/application-events-ts-page.ts index c4b492a..cef9583 100644 --- a/app/ns-framework-modules-category/application/application-events/application-events-ts-page.ts +++ b/app/ns-framework-modules-category/application/application-events/application-events-ts-page.ts @@ -1,8 +1,7 @@ // >> application-import-ts -import * as applicationModule from "tns-core-modules/application"; +import { Application, Enums } from "@nativescript/core"; // << application-import-ts -import { Observable } from "tns-core-modules/data/observable"; -import * as enums from "tns-core-modules/ui/enums"; +import { Observable } from "@nativescript/core"; let vm; let launchListener; let suspendListener; @@ -18,20 +17,20 @@ export const onNavigatingTo = (navigatedData) => { vm = new Observable(); vm.set("actionBarTitle", navigatedData.context.actionBarTitle); vm.set("info", "Refer to the code-behind files \nfor Application Events snippets"); - if (applicationModule.android) { - const activity = applicationModule.android.foregroundActivity; + if (Application.android) { + const activity = Application.android.foregroundActivity; const orientationEnum = activity.getResources().getConfiguration().orientation; vm.set( "orientation", orientationEnum === 1 - ? enums.DeviceOrientation.portrait - : enums.DeviceOrientation.landscape + ? Enums.DeviceOrientation.portrait + : Enums.DeviceOrientation.landscape ); vm.set("resumeEvent", ""); vm.set("resumeEvent", ""); vm.set("launchEvent", ""); vm.set("displayedEvent", ""); - } else if (applicationModule.ios) { + } else if (Application.ios) { vm.set("orientation", "portrait"); } page.bindingContext = vm; @@ -47,7 +46,7 @@ export const onGridLoaded = (eventData) => { console.log("The appication was launched!"); vm.set("resumeEvent", "The appication was launched!"); }; - applicationModule.on(applicationModule.launchEvent, launchListener); + Application.on(Application.launchEvent, launchListener); // << application-events-launch-ts // >> application-events-suspend-ts @@ -55,7 +54,7 @@ export const onGridLoaded = (eventData) => { console.log("The appication was suspended!"); vm.set("suspendEvent", "The appication was suspended!"); }; - applicationModule.on(applicationModule.suspendEvent, suspendListener); + Application.on(Application.suspendEvent, suspendListener); // << application-events-suspend-ts // >> application-events-resume-ts @@ -63,14 +62,14 @@ export const onGridLoaded = (eventData) => { console.log("The appication was resumed!"); vm.set("resumeEvent", "The appication was resumed!"); }; - applicationModule.on(applicationModule.resumeEvent, resumeListener); + Application.on(Application.resumeEvent, resumeListener); // << application-events-resume-ts // >> application-events-exit-ts exitListener = (args) => { console.log("The appication was closed!"); }; - applicationModule.on(applicationModule.exitEvent, exitListener); + Application.on(Application.exitEvent, exitListener); // << application-events-exit-ts // >> application-events-displayed-ts @@ -78,7 +77,7 @@ export const onGridLoaded = (eventData) => { console.log("NativeScript displayedEvent!"); vm.set("displayedEvent", "The appication is displayed!"); }; - applicationModule.on(applicationModule.displayedEvent, displayedListener); + Application.on(Application.displayedEvent, displayedListener); // << application-events-displayed-ts // >> application-events-low-memory-ts @@ -86,7 +85,7 @@ export const onGridLoaded = (eventData) => { // the instance that has raidsed the event console.log("Instance: ", args.object); }; - applicationModule.on(applicationModule.lowMemoryEvent, lowMemoryListener); + Application.on(Application.lowMemoryEvent, lowMemoryListener); // << application-events-low-memory-ts // >> application-events-orientation-ts @@ -95,7 +94,7 @@ export const onGridLoaded = (eventData) => { console.log("Orientation: ", args.newValue); vm.set("orientation", args.newValue); }; - applicationModule.on(applicationModule.orientationChangedEvent, orientationChangedListener); + Application.on(Application.orientationChangedEvent, orientationChangedListener); // << application-events-orientation-ts // >> application-events-error-ts @@ -103,20 +102,20 @@ export const onGridLoaded = (eventData) => { // UnhandledErrorEventData.error: NativeScriptError console.log("NativeScript Error: ", args.error); }; - applicationModule.on(applicationModule.uncaughtErrorEvent, uncaughtErrorListener); + Application.on(Application.uncaughtErrorEvent, uncaughtErrorListener); // << application-events-error-ts }; export const onGridUnloaded = () => { // >> application-events-off-ts - applicationModule.off(applicationModule.launchEvent, launchListener); - applicationModule.off(applicationModule.resumeEvent, resumeListener); - applicationModule.off(applicationModule.suspendEvent, suspendListener); - applicationModule.off(applicationModule.exitEvent, exitListener); - applicationModule.off(applicationModule.displayedEvent, displayedListener); - applicationModule.off(applicationModule.lowMemoryEvent, lowMemoryListener); - applicationModule.off(applicationModule.orientationChangedEvent, orientationChangedListener); - applicationModule.off(applicationModule.uncaughtErrorEvent, uncaughtErrorListener); + Application.off(Application.launchEvent, launchListener); + Application.off(Application.resumeEvent, resumeListener); + Application.off(Application.suspendEvent, suspendListener); + Application.off(Application.exitEvent, exitListener); + Application.off(Application.displayedEvent, displayedListener); + Application.off(Application.lowMemoryEvent, lowMemoryListener); + Application.off(Application.orientationChangedEvent, orientationChangedListener); + Application.off(Application.uncaughtErrorEvent, uncaughtErrorListener); // << application-events-off-ts }; diff --git a/app/ns-framework-modules-category/application/application-page.js b/app/ns-framework-modules-category/application/application-page.js index bc43d46..1bfac23 100644 --- a/app/ns-framework-modules-category/application/application-page.js +++ b/app/ns-framework-modules-category/application/application-page.js @@ -1,50 +1,51 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); -const platformModule = require("tns-core-modules/platform"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; +import { isIOS, isAndroid } from "@nativescript/core"; + const navigationLinks = [ - new link( + new Link( "Check Platform", "ns-framework-modules-category/application/check-platform/check-platform-page" ), - new link( + new Link( "Application Events", "ns-framework-modules-category/application/application-events/application-events-page" ) ]; const navigationLinksTsc = [ - new link( + new Link( "Check Platform", "ns-framework-modules-category/application/check-platform/check-platform-ts-page" ), - new link( + new Link( "Application Events", "ns-framework-modules-category/application/application-events/application-events-ts-page" ) ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; - if (platformModule.isIOS && navigationLinks.filter((e) => e.title === "iOS Notification Observer").length < 1) { + if (isIOS && navigationLinks.filter((e) => e.title === "iOS Notification Observer").length < 1) { navigationLinks.push( - new link( + new Link( "iOS Notification Observer", "ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-page" ) ); navigationLinksTsc.push( - new link( + new Link( "iOS Notification Observer", "ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-ts-page" ) ); - } else if (platformModule.isAndroid && navigationLinks.filter((e) => e.title === "Android Broadcast Receiver").length < 1) { + } else if (isAndroid && navigationLinks.filter((e) => e.title === "Android Broadcast Receiver").length < 1) { navigationLinks.push( - new link( + new Link( "Android Broadcast Receiver", "ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-page" ) ); navigationLinksTsc.push( - new link( + new Link( "Android Broadcast Receiver", "ns-framework-modules-category/application/android-broadcast-receiver/android-broadcast-receiver-ts-page" ) @@ -57,4 +58,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/application/check-platform/check-platform-page.js b/app/ns-framework-modules-category/application/check-platform/check-platform-page.js index 3727b20..16343c9 100644 --- a/app/ns-framework-modules-category/application/check-platform/check-platform-page.js +++ b/app/ns-framework-modules-category/application/check-platform/check-platform-page.js @@ -1,6 +1,6 @@ -const application = require("tns-core-modules/application"); +import { Application } from "@nativescript/core"; -function onGridLoaded(args) { +export function onGridLoaded(args) { const grid = args.object; const lbl = grid.getViewById("lbl"); const iconLabel = grid.getViewById("iconLabel"); @@ -12,13 +12,13 @@ function onGridLoaded(args) { lbl.verticalAlignment = "middle"; lbl.fontSize = 24; // >> application-platform-js - if (application.android) { + if (Application.android) { console.log("We are running on Android device!"); // >> (hide) iconLabel.text = String.fromCharCode(0xff17b); lbl.text = "Android Applicaiton"; // << (hide) - } else if (application.ios) { + } else if (Application.ios) { console.log("We are running on iOS device"); // >> (hide) iconLabel.text = String.fromCharCode(0xf179); @@ -27,9 +27,8 @@ function onGridLoaded(args) { } // << application-platform-js } -exports.onGridLoaded = onGridLoaded; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.actionBar.title = args.context.title; } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/application/check-platform/check-platform-ts-page.ts b/app/ns-framework-modules-category/application/check-platform/check-platform-ts-page.ts index 21cfb59..dfdad76 100644 --- a/app/ns-framework-modules-category/application/check-platform/check-platform-ts-page.ts +++ b/app/ns-framework-modules-category/application/check-platform/check-platform-ts-page.ts @@ -1,8 +1,4 @@ -import { EventData } from "tns-core-modules/data/observable"; -import { NavigatedData, Page } from "tns-core-modules/ui/page"; -import { GridLayout } from "tns-core-modules/ui/layouts/grid-layout"; -import { Label } from "tns-core-modules/ui/label"; -import * as application from "tns-core-modules/application"; +import { Application, EventData, GridLayout, Label, NavigatedData, Page } from "@nativescript/core"; export function onGridLoaded(args: EventData) { const grid = args.object; @@ -16,13 +12,13 @@ export function onGridLoaded(args: EventData) { lbl.verticalAlignment = "middle"; lbl.fontSize = 24; // >> application-platform-ts - if (application.android) { + if (Application.android) { console.log("We are running on Android device!"); // >> (hide) iconLabel.text = String.fromCharCode(0xff17b); lbl.text = "Android Applicaiton"; // << (hide) - } else if (application.ios) { + } else if (Application.ios) { console.log("We are running on iOS device"); // >> (hide) iconLabel.text = String.fromCharCode(0xf179); diff --git a/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-page.js b/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-page.js index 9090064..8214776 100644 --- a/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-page.js +++ b/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-page.js @@ -1,38 +1,34 @@ -const application = require("tns-core-modules/application"); -const Observable = require("tns-core-modules/data/observable").Observable; -const platformModule = require("tns-core-modules/platform"); -const utilsModule = require("tns-core-modules/utils/utils"); +import { Application, isIOS, Observable, Utils } from "@nativescript/core"; + let vm; let observer; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; vm = new Observable(); vm.set("info", "Using iOS Notification Observer \nto check the battery life"); vm.set("batteryLife", "0"); - vm.set("isIOS", platformModule.isIOS); + vm.set("isIOS", isIOS); page.bindingContext = vm; page.actionBar.title = args.context.title; } -exports.onNavigatingTo = onNavigatingTo; -function onNavigatedTo(args) { + +export function onNavigatedTo(args) { vm.set("actionBarTitle", args.context.actionBarTitle); // >> app-ios-observer-code - if (application.ios) { - utilsModule.ios.getter(UIDevice, UIDevice.currentDevice).batteryMonitoringEnabled = true; - vm.set("batteryLife", +(utilsModule.ios.getter(UIDevice, UIDevice.currentDevice).batteryLevel * 100).toFixed(1)); - observer = application.ios.addNotificationObserver(UIDeviceBatteryLevelDidChangeNotification, (notification) => { + if (Application.ios) { + Utils.ios.getter(UIDevice, UIDevice.currentDevice).batteryMonitoringEnabled = true; + vm.set("batteryLife", +(Utils.ios.getter(UIDevice, UIDevice.currentDevice).batteryLevel * 100).toFixed(1)); + observer = Application.ios.addNotificationObserver(UIDeviceBatteryLevelDidChangeNotification, (notification) => { // tslint:disable:max-line-length - vm.set("batteryLife", +(utilsModule.ios.getter(UIDevice, UIDevice.currentDevice).batteryLevel * 100).toFixed(1)); + vm.set("batteryLife", +(Utils.ios.getter(UIDevice, UIDevice.currentDevice).batteryLevel * 100).toFixed(1)); }); } // << app-ios-observer-code } -exports.onNavigatedTo = onNavigatedTo; -function onUnloaded() { - if (application.ios) { +export function onUnloaded() { + if (Application.ios) { // >> app-ios-observer-remove - application.ios.removeNotificationObserver(observer, UIDeviceBatteryLevelDidChangeNotification); + Application.ios.removeNotificationObserver(observer, UIDeviceBatteryLevelDidChangeNotification); // << app-ios-observer-remove } } -exports.onUnloaded = onUnloaded; diff --git a/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-ts-page.ts b/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-ts-page.ts index fc0252a..1edbcc3 100644 --- a/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-ts-page.ts +++ b/app/ns-framework-modules-category/application/ios-notification-observer/ios-notification-observer-ts-page.ts @@ -1,7 +1,4 @@ -import * as application from "tns-core-modules/application"; -import { Observable } from "tns-core-modules/data/observable"; -import { isIOS } from "tns-core-modules/platform"; -import { ios as iosApp } from "tns-core-modules/application"; +import { Application, Observable, isIOS } from "@nativescript/core"; let vm; let observer; @@ -23,17 +20,17 @@ export function onNavigatedTo(args) { vm.set("actionBarTitle", args.context.actionBarTitle); // >> app-class-properties-ios - // import { ios as iosApp } from "tns-core-modules/application"; + // import { Application } from "@nativescript/core"; // https://developer.apple.com/documentation/uikit/uiapplicationdelegate?language=objc - let delegate = iosApp.delegate; // the iOS application delegate + let delegate = Application.ios.delegate; // the iOS application delegate - let nativeApp = iosApp.nativeApp; // The native iOS app + let nativeApp = Application.ios.nativeApp; // The native iOS app // https://developer.apple.com/documentation/uikit/uiwindow/1621581-rootviewcontroller?language=objc - let rootController = iosApp.rootController; // the iOS rootViewController + let rootController = Application.ios.rootController; // the iOS rootViewController - let window = iosApp.window; // UIWindow + let window = Application.ios.window; // UIWindow // << app-class-properties-ios // >> app-ios-observer-code-ts @@ -43,7 +40,7 @@ export function onNavigatedTo(args) { "batteryLife", +(UIDevice.currentDevice.batteryLevel * 100).toFixed(1) ); - observer = iosApp.addNotificationObserver( + observer = Application.ios.addNotificationObserver( UIDeviceBatteryLevelDidChangeNotification, notification => { vm.set( @@ -59,7 +56,7 @@ export function onNavigatedTo(args) { export function onUnloaded() { if (isIOS) { // >> app-ios-observer-remove-ts - iosApp.removeNotificationObserver(observer, UIDeviceBatteryLevelDidChangeNotification); + Application.ios.removeNotificationObserver(observer, UIDeviceBatteryLevelDidChangeNotification); // << app-ios-observer-remove-ts } } diff --git a/app/ns-framework-modules-category/color/color-page.js b/app/ns-framework-modules-category/color/color-page.js index 73a81ed..ec4426c 100644 --- a/app/ns-framework-modules-category/color/color-page.js +++ b/app/ns-framework-modules-category/color/color-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/color/usage/usage-page") + new Link("Usage", "ns-framework-modules-category/color/usage/usage-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/color/usage/usage-ts-page") + new Link("Usage", "ns-framework-modules-category/color/usage/usage-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/color/usage/usage-page.js b/app/ns-framework-modules-category/color/usage/usage-page.js index aa4c9fc..d019519 100644 --- a/app/ns-framework-modules-category/color/usage/usage-page.js +++ b/app/ns-framework-modules-category/color/usage/usage-page.js @@ -1,6 +1,7 @@ // >> creating-colors-code-js -const Color = require("tns-core-modules/color").Color; -const colors = require("tns-core-modules/color/known-colors"); +import { OrangeRed, isKnownName } from "@nativescript/core/color/known-colors"; +import { Color } from "@nativescript/core"; + function createColor() { // Using hex values to create color; const colorHex = new Color("#FF00CC"); @@ -15,12 +16,12 @@ function createColor() { // Using string values to create colors const namedColor = "orangered"; - const isKnown = colors.isKnownName(namedColor); + const isKnown = isKnownName(namedColor); if (isKnown) { const colorName = new Color(namedColor); } // Using supported known colors from tns-core-modules/color/known-colors - const colorKnownName = new Color(colors.OrangeRed); + const colorKnownName = new Color(OrangeRed); } // << creating-colors-code-js diff --git a/app/ns-framework-modules-category/color/usage/usage-ts-page.ts b/app/ns-framework-modules-category/color/usage/usage-ts-page.ts index 0853769..39f5111 100644 --- a/app/ns-framework-modules-category/color/usage/usage-ts-page.ts +++ b/app/ns-framework-modules-category/color/usage/usage-ts-page.ts @@ -1,8 +1,8 @@ // tslint:disable:no-bitwise // >> creating-colors-code-ts -import { Color } from "tns-core-modules/color"; -import * as colors from "tns-core-modules/color/known-colors"; -import { isKnownName } from "tns-core-modules/color/known-colors"; +import { Color } from "@nativescript/core"; +import { isKnownName } from "@nativescript/core/color/known-colors"; +import { OrangeRed } from "@nativescript/core/color/known-colors"; function createColor() { // Using hex values to create color; @@ -24,6 +24,6 @@ function createColor() { } // Using supported known colors from tns-core-modules/color/known-colors - let colorKnownName = new Color(colors.OrangeRed); + let colorKnownName = new Color(OrangeRed); } // << creating-colors-code-ts diff --git a/app/ns-framework-modules-category/connectivity/connectivity-page.js b/app/ns-framework-modules-category/connectivity/connectivity-page.js index d11bfed..465ecbc 100644 --- a/app/ns-framework-modules-category/connectivity/connectivity-page.js +++ b/app/ns-framework-modules-category/connectivity/connectivity-page.js @@ -1,13 +1,13 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/connectivity/usage/usage-page") + new Link("Usage", "ns-framework-modules-category/connectivity/usage/usage-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/connectivity/usage/usage-ts-page") + new Link("Usage", "ns-framework-modules-category/connectivity/usage/usage-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -16,4 +16,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/connectivity/usage/usage-page.js b/app/ns-framework-modules-category/connectivity/usage/usage-page.js index 9bbdc95..46a6229 100644 --- a/app/ns-framework-modules-category/connectivity/usage/usage-page.js +++ b/app/ns-framework-modules-category/connectivity/usage/usage-page.js @@ -1,31 +1,31 @@ // >> connectivity-start-code-js -const connectivityModule = require("tns-core-modules/connectivity"); +import { Connectivity } from "@nativescript/core"; -exports.onNavigatedTo = function(args) { +export function onNavigatedTo(args) { const page = args.object; let connectionTypeString; - const type = connectivityModule.getConnectionType(); + const type = Connectivity.getConnectionType(); switch (type) { - case connectivityModule.connectionType.none: + case Connectivity.connectionType.none: console.log("No connection"); connectionTypeString = "No Internet connectivity!"; break; - case connectivityModule.connectionType.wifi: + case Connectivity.connectionType.wifi: console.log("WiFi connection"); connectionTypeString = "WiFI connectivity!"; break; - case connectivityModule.connectionType.mobile: + case Connectivity.connectionType.mobile: console.log("Mobile connection"); connectionTypeString = "Mobile connectivity!"; break; - case connectivityModule.connectionType.ethernet: + case Connectivity.connectionType.ethernet: console.log("Ethernet connection"); connectionTypeString = "Ethernet connectivity!"; break; - case connectivityModule.connectionType.bluetooth: + case Connectivity.connectionType.bluetooth: console.log("Bluetooth connection"); connectionTypeString = "Bluetooth connectivity!"; break; @@ -33,21 +33,21 @@ exports.onNavigatedTo = function(args) { break; } - connectivityModule.startMonitoring((newConnectionType) => { + Connectivity.startMonitoring((newConnectionType) => { switch (newConnectionType) { - case connectivityModule.connectionType.none: + case Connectivity.connectionType.none: console.log("Connection type changed to none."); break; - case connectivityModule.connectionType.wifi: + case Connectivity.connectionType.wifi: console.log("Connection type changed to WiFi."); break; - case connectivityModule.connectionType.mobile: + case Connectivity.connectionType.mobile: console.log("Connection type changed to mobile."); break; - case connectivityModule.connectionType.ethernet: + case Connectivity.connectionType.ethernet: console.log("Connection type changed to ethernet."); break; - case connectivityModule.connectionType.bluetooth: + case Connectivity.connectionType.bluetooth: console.log("Connection type changed to bluetooth."); break; default: @@ -56,8 +56,8 @@ exports.onNavigatedTo = function(args) { }); // Stoping the connection monitoring - connectivityModule.stopMonitoring(); + Connectivity.stopMonitoring(); page.bindingContext = { connectionType: connectionTypeString }; -}; +} // << connectivity-start-code-js diff --git a/app/ns-framework-modules-category/connectivity/usage/usage-ts-page.ts b/app/ns-framework-modules-category/connectivity/usage/usage-ts-page.ts index 010de30..6fbde36 100644 --- a/app/ns-framework-modules-category/connectivity/usage/usage-ts-page.ts +++ b/app/ns-framework-modules-category/connectivity/usage/usage-ts-page.ts @@ -1,30 +1,30 @@ // >> connectivity-start-code-ts -import { connectionType, getConnectionType, startMonitoring, stopMonitoring }from "tns-core-modules/connectivity"; +import { Connectivity } from "@nativescript/core"; export function onNavigatedTo(args) { const page = args.object; let connectionTypeString; - const type = getConnectionType(); + const type = Connectivity.getConnectionType(); switch (type) { - case connectionType.none: + case Connectivity.connectionType.none: console.log("No connection"); connectionTypeString = "No Internet connectivity!"; break; - case connectionType.wifi: + case Connectivity.connectionType.wifi: console.log("WiFi connection"); connectionTypeString = "WiFI connectivity!"; break; - case connectionType.mobile: + case Connectivity.connectionType.mobile: console.log("Mobile connection"); connectionTypeString = "Mobile connectivity!"; break; - case connectionType.ethernet: + case Connectivity.connectionType.ethernet: console.log("Ethernet connection"); connectionTypeString = "Ethernet connectivity!"; break; - case connectionType.bluetooth: + case Connectivity.connectionType.bluetooth: console.log("Bluetooth connection"); connectionTypeString = "Bluetooth connectivity!"; break; @@ -32,21 +32,21 @@ export function onNavigatedTo(args) { break; } - startMonitoring((newConnectionType) => { + Connectivity.startMonitoring((newConnectionType) => { switch (newConnectionType) { - case connectionType.none: + case Connectivity.connectionType.none: console.log("Connection type changed to none."); break; - case connectionType.wifi: + case Connectivity.connectionType.wifi: console.log("Connection type changed to WiFi."); break; - case connectionType.mobile: + case Connectivity.connectionType.mobile: console.log("Connection type changed to mobile."); break; - case connectionType.ethernet: + case Connectivity.connectionType.ethernet: console.log("Connection type changed to ethernet."); break; - case connectionType.bluetooth: + case Connectivity.connectionType.bluetooth: console.log("Connection type changed to bluetooth."); break; default: @@ -55,7 +55,7 @@ export function onNavigatedTo(args) { }); // Stoping the connection monitoring - stopMonitoring(); + Connectivity.stopMonitoring(); page.bindingContext = { connectionType: connectionTypeString }; } diff --git a/app/ns-framework-modules-category/console/console-page.js b/app/ns-framework-modules-category/console/console-page.js index 39897e1..23d1871 100644 --- a/app/ns-framework-modules-category/console/console-page.js +++ b/app/ns-framework-modules-category/console/console-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/console/usage/usage-page") + new Link("Usage", "ns-framework-modules-category/console/usage/usage-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/console/usage/usage-ts-page") + new Link("Usage", "ns-framework-modules-category/console/usage/usage-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/console/usage/usage-page.js b/app/ns-framework-modules-category/console/usage/usage-page.js index f695a51..b557da7 100644 --- a/app/ns-framework-modules-category/console/usage/usage-page.js +++ b/app/ns-framework-modules-category/console/usage/usage-page.js @@ -1,6 +1,7 @@ -exports.onNavigatedTo = function (args) { +export function onNavigatedTo (args) { const jsonObj = { - objProp: "I am Object!", objProp2: + objProp: "I am Object!", +objProp2: { objProp3: "I am Object!", objProp4: "I am Object!" @@ -33,4 +34,4 @@ exports.onNavigatedTo = function (args) { // Prints the current stack trace in the console. console.trace(); // << console-trace -}; +} diff --git a/app/ns-framework-modules-category/fetch/fetch-page.js b/app/ns-framework-modules-category/fetch/fetch-page.js index 557937b..2bbf205 100644 --- a/app/ns-framework-modules-category/fetch/fetch-page.js +++ b/app/ns-framework-modules-category/fetch/fetch-page.js @@ -1,14 +1,14 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Get", "ns-framework-modules-category/fetch/get/get-page"), - new link("Post", "ns-framework-modules-category/fetch/post/post-page") + new Link("Get", "ns-framework-modules-category/fetch/get/get-page"), + new Link("Post", "ns-framework-modules-category/fetch/post/post-page") ]; const navigationLinksTsc = [ - new link("Get", "ns-framework-modules-category/fetch/get/get-ts-page"), - new link("Post", "ns-framework-modules-category/fetch/post/post-ts-page") + new Link("Get", "ns-framework-modules-category/fetch/get/get-ts-page"), + new Link("Post", "ns-framework-modules-category/fetch/post/post-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -17,4 +17,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/fetch/get/get-page.js b/app/ns-framework-modules-category/fetch/get/get-page.js index 26316a4..8de867c 100644 --- a/app/ns-framework-modules-category/fetch/get/get-page.js +++ b/app/ns-framework-modules-category/fetch/get/get-page.js @@ -1,6 +1,6 @@ -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); @@ -23,7 +23,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onButtonTap(args) { +export function onButtonTap(args) { const button = args.object; const page = args.object.page; const vm = page.bindingContext; @@ -154,5 +154,3 @@ function getResponseFormDataExample(viewModel) { // << request-response-form-data } -exports.onNavigatingTo = onNavigatingTo; -exports.onButtonTap = onButtonTap; diff --git a/app/ns-framework-modules-category/fetch/get/get-ts-page.ts b/app/ns-framework-modules-category/fetch/get/get-ts-page.ts index e95b106..f3895c5 100644 --- a/app/ns-framework-modules-category/fetch/get/get-ts-page.ts +++ b/app/ns-framework-modules-category/fetch/get/get-ts-page.ts @@ -1,4 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; +import { Observable } from "@nativescript/core"; export function onNavigatingTo(args) { const page = args.object; diff --git a/app/ns-framework-modules-category/fetch/post/post-page.js b/app/ns-framework-modules-category/fetch/post/post-page.js index 3c55348..86c2a0d 100644 --- a/app/ns-framework-modules-category/fetch/post/post-page.js +++ b/app/ns-framework-modules-category/fetch/post/post-page.js @@ -1,6 +1,6 @@ -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); @@ -11,7 +11,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function makePostRequest(args) { +export function makePostRequest(args) { const page = args.object.page; const vm = page.bindingContext; // >> fetch-post @@ -37,6 +37,3 @@ function makePostRequest(args) { }); // << fetch-post } - -exports.onNavigatingTo = onNavigatingTo; -exports.makePostRequest = makePostRequest; diff --git a/app/ns-framework-modules-category/fetch/post/post-ts-page.ts b/app/ns-framework-modules-category/fetch/post/post-ts-page.ts index b52d4fd..21355a2 100644 --- a/app/ns-framework-modules-category/fetch/post/post-ts-page.ts +++ b/app/ns-framework-modules-category/fetch/post/post-ts-page.ts @@ -1,4 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; +import { Observable } from "@nativescript/core"; export function onNavigatingTo(args) { const page = args.object; diff --git a/app/ns-framework-modules-category/file-system/delete/delete-page.js b/app/ns-framework-modules-category/file-system/delete/delete-page.js index 56d9ffd..cd891bb 100644 --- a/app/ns-framework-modules-category/file-system/delete/delete-page.js +++ b/app/ns-framework-modules-category/file-system/delete/delete-page.js @@ -1,12 +1,11 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const fileSystemModule = require("tns-core-modules/file-system"); +import { Observable, knownFolders } from "@nativescript/core"; let file; let myFolder; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); - const documents = fileSystemModule.knownFolders.documents(); + const documents = knownFolders.documents(); myFolder = documents.getFolder("TestFolderName"); file = myFolder.getFile("TestFileName.txt"); vm.set("myFolderPath", myFolder.path); @@ -15,7 +14,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onDeleteFile(args) { +export function onDeleteFile(args) { const page = args.object.page; const vm = page.bindingContext; if (file) { @@ -33,7 +32,7 @@ function onDeleteFile(args) { } } -function onDeleteFolder(args) { +export function onDeleteFolder(args) { const page = args.object.page; const vm = page.bindingContext; if (myFolder) { @@ -52,7 +51,7 @@ function onDeleteFolder(args) { } } -function onClearFolder(args) { +export function onClearFolder(args) { const page = args.object.page; const vm = page.bindingContext; if (myFolder) { @@ -70,15 +69,13 @@ function onClearFolder(args) { } } -function onReset() { - const documents = fileSystemModule.knownFolders.documents(); +export function onReset(args) { + const page = args.object.page; + const vm = page.bindingContext; + const documents = knownFolders.documents(); myFolder = documents.getFolder("TestFolderName"); file = myFolder.getFile("TestFileName.txt"); - tresultMessage = "Successfully reset!"; + vm.set("resultMessage", "Successfully reset!"); } -exports.onNavigatingTo = onNavigatingTo; -exports.onDeleteFile = onDeleteFile; -exports.onDeleteFolder = onDeleteFolder; -exports.onClearFolder = onClearFolder; -exports.onReset = onReset; + diff --git a/app/ns-framework-modules-category/file-system/delete/delete-ts-page.ts b/app/ns-framework-modules-category/file-system/delete/delete-ts-page.ts index def3cd7..f3bdabd 100644 --- a/app/ns-framework-modules-category/file-system/delete/delete-ts-page.ts +++ b/app/ns-framework-modules-category/file-system/delete/delete-ts-page.ts @@ -1,6 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { knownFolders, File, Folder } from "tns-core-modules/file-system"; -import { Page } from "tns-core-modules/ui/page"; +import { File, Folder, knownFolders, Observable, Page } from "@nativescript/core"; let file: File; let myFolder: Folder; diff --git a/app/ns-framework-modules-category/file-system/file-system-page.js b/app/ns-framework-modules-category/file-system/file-system-page.js index a8713c0..649a225 100644 --- a/app/ns-framework-modules-category/file-system/file-system-page.js +++ b/app/ns-framework-modules-category/file-system/file-system-page.js @@ -1,20 +1,20 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/file-system/usage/usage-page"), - new link("Delete", "ns-framework-modules-category/file-system/delete/delete-page"), - new link("Paths", "ns-framework-modules-category/file-system/paths/paths-page"), - new link("Read", "ns-framework-modules-category/file-system/read/read-page"), - new link("Update", "ns-framework-modules-category/file-system/update/update-page") + new Link("Usage", "ns-framework-modules-category/file-system/usage/usage-page"), + new Link("Delete", "ns-framework-modules-category/file-system/delete/delete-page"), + new Link("Paths", "ns-framework-modules-category/file-system/paths/paths-page"), + new Link("Read", "ns-framework-modules-category/file-system/read/read-page"), + new Link("Update", "ns-framework-modules-category/file-system/update/update-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/file-system/usage/usage-ts-page"), - new link("Delete", "ns-framework-modules-category/file-system/delete/delete-ts-page"), - new link("Paths", "ns-framework-modules-category/file-system/paths/paths-ts-page"), - new link("Read", "ns-framework-modules-category/file-system/read/read-ts-page"), - new link("Update", "ns-framework-modules-category/file-system/update/update-ts-page") + new Link("Usage", "ns-framework-modules-category/file-system/usage/usage-ts-page"), + new Link("Delete", "ns-framework-modules-category/file-system/delete/delete-ts-page"), + new Link("Paths", "ns-framework-modules-category/file-system/paths/paths-ts-page"), + new Link("Read", "ns-framework-modules-category/file-system/read/read-ts-page"), + new Link("Update", "ns-framework-modules-category/file-system/update/update-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -23,4 +23,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/file-system/paths/paths-page.js b/app/ns-framework-modules-category/file-system/paths/paths-page.js index 801844d..5325280 100644 --- a/app/ns-framework-modules-category/file-system/paths/paths-page.js +++ b/app/ns-framework-modules-category/file-system/paths/paths-page.js @@ -1,37 +1,36 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const fileSystemModule = require("tns-core-modules/file-system"); +import { File, Folder, Observable, knownFolders, path } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); // >> fs-paths-normalize-code - let documentsFolder = fileSystemModule.knownFolders.documents(); - const currentAppFolder = fileSystemModule.knownFolders.currentApp(); - const tempFolder = fileSystemModule.knownFolders.temp(); + let documentsFolder = knownFolders.documents(); + const currentAppFolder = knownFolders.currentApp(); + const tempFolder = knownFolders.temp(); const testPath = "///test.txt"; // Get a normalized path such as /test.txt from ///test.txt - vm.set("documents", fileSystemModule.path.normalize(documentsFolder.path + testPath)); - vm.set("currentApp", fileSystemModule.path.normalize(currentAppFolder.path + testPath)); - vm.set("temp", fileSystemModule.path.normalize(tempFolder.path + testPath)); + vm.set("documents", path.normalize(documentsFolder.path + testPath)); + vm.set("currentApp", path.normalize(currentAppFolder.path + testPath)); + vm.set("temp", path.normalize(tempFolder.path + testPath)); // << fs-paths-normalize-code // >> fs-paths-join-code // Generate a path like /myFiles/test.txt - documentsFolder = fileSystemModule.knownFolders.documents(); - const filePath = fileSystemModule.path.join(documentsFolder.path, "myFiles", "test.txt"); + documentsFolder = knownFolders.documents(); + const filePath = path.join(documentsFolder.path, "myFiles", "test.txt"); // << fs-paths-join-code console.log(filePath); // >> fs-paths-separator-code // An OS dependent path separator, "\" or "/". - const separator = fileSystemModule.path.separator; + const separator = path.separator; // << fs-paths-separator-code console.log(separator); // >> fs-paths-create-folder-code - const folderPath = fileSystemModule.path.join(fileSystemModule.knownFolders.documents().path, "music"); - const folder = fileSystemModule.Folder.fromPath(folderPath); + const folderPath = path.join(knownFolders.documents().path, "music"); + const folder = Folder.fromPath(folderPath); // << fs-paths-create-folder-code console.log(folder); @@ -42,13 +41,13 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onSaveContentToFile(args) { +export function onSaveContentToFile(args) { const page = args.object.page; const vm = page.bindingContext; // >> fs-paths-create-file-code - const documentsFolder = fileSystemModule.knownFolders.documents(); - const path = fileSystemModule.path.join(documentsFolder.path, "FileFromPath.txt"); - const file = fileSystemModule.File.fromPath(path); + const documentsFolder = knownFolders.documents(); + const filePath = path.join(documentsFolder.path, "FileFromPath.txt"); + const file = File.fromPath(filePath); // Writing text to the file. file.writeText(vm.get("textContentToBeSaved")) @@ -66,5 +65,4 @@ function onSaveContentToFile(args) { // << fs-paths-create-file-code } -exports.onNavigatingTo = onNavigatingTo; -exports.onSaveContentToFile = onSaveContentToFile; + diff --git a/app/ns-framework-modules-category/file-system/paths/paths-ts-page.ts b/app/ns-framework-modules-category/file-system/paths/paths-ts-page.ts index fa6ab98..8e353a0 100644 --- a/app/ns-framework-modules-category/file-system/paths/paths-ts-page.ts +++ b/app/ns-framework-modules-category/file-system/paths/paths-ts-page.ts @@ -1,6 +1,5 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { knownFolders, path, Folder, File } from "tns-core-modules/file-system"; -import { Page } from "tns-core-modules/ui/page"; +import { File, Folder, knownFolders, Observable, Page, path } from "@nativescript/core"; + export function onNavigatingTo(args) { const page: Page = args.object; const vm = new Observable(); diff --git a/app/ns-framework-modules-category/file-system/read/read-page.js b/app/ns-framework-modules-category/file-system/read/read-page.js index 1f10bb4..898c25b 100644 --- a/app/ns-framework-modules-category/file-system/read/read-page.js +++ b/app/ns-framework-modules-category/file-system/read/read-page.js @@ -1,9 +1,6 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray; -const fileSystemModule = require("tns-core-modules/file-system"); -const imageSourceModule = require("tns-core-modules/image-source"); +import { File, Folder, ImageSource, Observable, ObservableArray, knownFolders, path } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); const array = new ObservableArray(); @@ -13,7 +10,7 @@ function onNavigatingTo(args) { "Open source framework for building truly native mobile apps" + "with Angular, TypeScript or JavaScript."; - let documents = fileSystemModule.knownFolders.documents(); + let documents = knownFolders.documents(); const folder = documents.getFolder(folderName); const file = folder.getFile(fileName); @@ -32,7 +29,7 @@ function onNavigatingTo(args) { }); // >> fs-folder-content-code - documents = fileSystemModule.knownFolders.documents(); + documents = knownFolders.documents(); documents.getEntities() .then((entities) => { // entities is array with the document's files and folders. @@ -51,14 +48,14 @@ function onNavigatingTo(args) { }); // << fs-folder-content-code // >> fs-file-exists-check-code - documents = fileSystemModule.knownFolders.documents(); - const path = fileSystemModule.path.join(documents.path, "Text.txt"); - const exists = fileSystemModule.File.exists(path); + documents = knownFolders.documents(); + const filePath = path.join(documents.path, "Text.txt"); + const exists = File.exists(filePath); console.log(`Does Text.txt exists: ${exists}`); // << fs-file-exists-check-code // >> fs-folder-exists-check-code - const temp = fileSystemModule.knownFolders.temp(); - const tempExists = fileSystemModule.Folder.exists(temp.path); + const temp = knownFolders.temp(); + const tempExists = Folder.exists(temp.path); console.log(`Does temp folder exists: ${tempExists}`); // << fs-folder-exists-check-code @@ -69,17 +66,17 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onReadSync(args) { +export function onReadSync(args) { const page = args.object.page; const vm = page.bindingContext; // >> fs-read-sync-code - const image = imageSourceModule.fromResource("icon"); - const folder = fileSystemModule.knownFolders.documents(); - const path = fileSystemModule.path.join(folder.path, "Test.png"); - const saved = image.saveToFile(path, "png"); + const image = ImageSource.fromResourceSync("icon"); + const folder = knownFolders.documents(); + const filePath = path.join(folder.path, "Test.png"); + const saved = image.saveToFile(filePath, "png"); if (saved) { - const imageFile = fileSystemModule.File.fromPath(path); + const imageFile = File.fromPath(filePath); const binarySource = imageFile.readSync((err) => { console.log(err); }); @@ -93,5 +90,3 @@ function onReadSync(args) { vm.set("binarySource", `Successfully read binary data: ${binarySource}`); } } -exports.onNavigatingTo = onNavigatingTo; -exports.onReadSync = onReadSync; diff --git a/app/ns-framework-modules-category/file-system/read/read-ts-page.ts b/app/ns-framework-modules-category/file-system/read/read-ts-page.ts index 00091d6..7b5487d 100644 --- a/app/ns-framework-modules-category/file-system/read/read-ts-page.ts +++ b/app/ns-framework-modules-category/file-system/read/read-ts-page.ts @@ -1,8 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { ObservableArray } from "tns-core-modules/data/observable-array"; -import { knownFolders, path, File, Folder } from "tns-core-modules/file-system"; -import { fromResource, ImageSource } from "tns-core-modules/image-source"; -import { Page } from "tns-core-modules/ui/page"; +import { File, Folder, ImageSource, knownFolders, Observable, ObservableArray, Page, path } from "@nativescript/core"; export function onNavigatingTo(args) { const page: Page = args.object; @@ -74,7 +70,7 @@ export function onReadSync(args) { const page: Page = args.object.page; const vm = page.bindingContext; // >> fs-read-sync-code-ts - const image: ImageSource = fromResource("icon"); + const image: ImageSource = ImageSource.fromResourceSync("icon"); const folder: Folder = knownFolders.documents(); const filePath: string = path.join(folder.path, "Test.png"); const saved = image.saveToFile(filePath, "png"); diff --git a/app/ns-framework-modules-category/file-system/update/update-page.js b/app/ns-framework-modules-category/file-system/update/update-page.js index b9f7fb3..6291671 100644 --- a/app/ns-framework-modules-category/file-system/update/update-page.js +++ b/app/ns-framework-modules-category/file-system/update/update-page.js @@ -1,13 +1,11 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const fileSystemModule = require("tns-core-modules/file-system"); -const dialogs = require("tns-core-modules/ui/dialogs"); +import { Dialogs, Observable, knownFolders } from "@nativescript/core"; let file; let myFolder; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); - const documents = fileSystemModule.knownFolders.documents(); + const documents = knownFolders.documents(); file = documents.getFile("TestFileName.txt"); myFolder = documents.getFolder("TestFolderName"); @@ -21,7 +19,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onFileRename(args) { +export function onFileRename(args) { const page = args.object.page; const vm = page.bindingContext; // >> fs-update-rename-file-code @@ -35,7 +33,7 @@ function onFileRename(args) { // Error! console.log("Error: "); console.log(err); - dialogs.alert(err) + Dialogs.alert(err) .then(() => { console.log("Dialog closed!"); }); @@ -43,7 +41,7 @@ function onFileRename(args) { // << fs-update-rename-file-code } -function onFolderRename(args) { +export function onFolderRename(args) { const page = args.object.page; const vm = page.bindingContext; // >> fs-update-rename-folder-code @@ -57,7 +55,7 @@ function onFolderRename(args) { // Error! console.log("Error: "); console.log(err); - dialogs.alert(err) + Dialogs.alert(err) .then(() => { console.log("Dialog closed!"); }); @@ -65,6 +63,3 @@ function onFolderRename(args) { // << fs-update-rename-folder-code } -exports.onNavigatingTo = onNavigatingTo; -exports.onFileRename = onFileRename; -exports.onFolderRename = onFolderRename; diff --git a/app/ns-framework-modules-category/file-system/update/update-ts-page.ts b/app/ns-framework-modules-category/file-system/update/update-ts-page.ts index fc330f0..1e081ca 100644 --- a/app/ns-framework-modules-category/file-system/update/update-ts-page.ts +++ b/app/ns-framework-modules-category/file-system/update/update-ts-page.ts @@ -1,7 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { File, Folder, knownFolders } from "tns-core-modules/file-system"; -import * as dialogs from "tns-core-modules/ui/dialogs"; -import { Page } from "tns-core-modules/ui/page"; +import { Dialogs, File, Folder, knownFolders, Observable, Page } from "@nativescript/core"; let file: File; let myFolder: Folder; @@ -37,7 +34,7 @@ export function onFileRename(args) { // Error! console.log("Error: "); console.log(err); - dialogs.alert(err) + Dialogs.alert(err) .then(() => { console.log("Dialog closed!"); }); @@ -59,7 +56,7 @@ export function onFolderRename(args) { // Error! console.log("Error: "); console.log(err); - dialogs.alert(err) + Dialogs.alert(err) .then(() => { console.log("Dialog closed!"); }); diff --git a/app/ns-framework-modules-category/file-system/usage/usage-page.js b/app/ns-framework-modules-category/file-system/usage/usage-page.js index 6ad0689..398c6f0 100644 --- a/app/ns-framework-modules-category/file-system/usage/usage-page.js +++ b/app/ns-framework-modules-category/file-system/usage/usage-page.js @@ -1,9 +1,9 @@ -const Observable = require("tns-core-modules/data/observable").Observable; // >> fs-create-require -const fileSystemModule = require("tns-core-modules/file-system"); +import { knownFolders } from "@nativescript/core"; // << fs-create-require +import { Observable } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); @@ -19,11 +19,11 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onCreateFile(args) { +export function onCreateFile(args) { const page = args.object.page; const vm = page.bindingContext; // >> fs-create-all-code - const documents = fileSystemModule.knownFolders.documents(); + const documents = knownFolders.documents(); const folder = documents.getFolder(vm.get("folderName") || "testFolder"); const file = folder.getFile(`${(vm.get("fileName") || "testFile")}`.txt); @@ -40,5 +40,4 @@ function onCreateFile(args) { }); // << fs-create-all-code } -exports.onNavigatingTo = onNavigatingTo; -exports.onCreateFile = onCreateFile; + diff --git a/app/ns-framework-modules-category/file-system/usage/usage-ts-page.ts b/app/ns-framework-modules-category/file-system/usage/usage-ts-page.ts index 5bf10d2..c047957 100644 --- a/app/ns-framework-modules-category/file-system/usage/usage-ts-page.ts +++ b/app/ns-framework-modules-category/file-system/usage/usage-ts-page.ts @@ -1,7 +1,6 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { Observable, Page } from "@nativescript/core"; // >> fs-create-import -import { knownFolders, Folder, File } from "tns-core-modules/file-system"; +import { knownFolders, Folder, File } from "@nativescript/core"; // << fs-create-import export function onNavigatingTo(args) { diff --git a/app/ns-framework-modules-category/fps-meter/fps-meter-page.js b/app/ns-framework-modules-category/fps-meter/fps-meter-page.js index e775843..9f83ef9 100644 --- a/app/ns-framework-modules-category/fps-meter/fps-meter-page.js +++ b/app/ns-framework-modules-category/fps-meter/fps-meter-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/fps-meter/usage/usage-page") + new Link("Usage", "ns-framework-modules-category/fps-meter/usage/usage-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/fps-meter/usage/usage-ts-page") + new Link("Usage", "ns-framework-modules-category/fps-meter/usage/usage-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/fps-meter/usage/usage-page.js b/app/ns-framework-modules-category/fps-meter/usage/usage-page.js index d2a192f..cc0608e 100644 --- a/app/ns-framework-modules-category/fps-meter/usage/usage-page.js +++ b/app/ns-framework-modules-category/fps-meter/usage/usage-page.js @@ -1,20 +1,17 @@ // >> fps-meter-js -const fpsMeter = require("tns-core-modules/fps-meter"); - +import { addCallback, removeCallback, start, stop } from "@nativescript/core/fps-meter"; let callbackId; -function startFPSMeter(args) { - callbackId = fpsMeter.addCallback((fps, minFps) => { +export function startFPSMeter(args) { + callbackId = addCallback((fps, minFps) => { console.log(`Frames per seconds: ${fps.toFixed(2)}`); console.log(minFps.toFixed(2)); }); - fpsMeter.start(); + start(); } -function stopFPSMeter(args) { - fpsMeter.removeCallback(callbackId); - fpsMeter.stop(); +export function stopFPSMeter(args) { + removeCallback(callbackId); + stop(); } -exports.startFPSMeter = startFPSMeter; -exports.stopFPSMeter = stopFPSMeter; // << fps-meter-js diff --git a/app/ns-framework-modules-category/fps-meter/usage/usage-ts-page.ts b/app/ns-framework-modules-category/fps-meter/usage/usage-ts-page.ts index 0aed394..de71c58 100644 --- a/app/ns-framework-modules-category/fps-meter/usage/usage-ts-page.ts +++ b/app/ns-framework-modules-category/fps-meter/usage/usage-ts-page.ts @@ -1,5 +1,5 @@ // >> fps-meter-ts -import { removeCallback, start, stop, addCallback } from "tns-core-modules/fps-meter"; +import {addCallback, removeCallback, start, stop} from "@nativescript/core/fps-meter"; let callbackId; export function startFPSMeter(args) { diff --git a/app/ns-framework-modules-category/http/get/get-page.js b/app/ns-framework-modules-category/http/get/get-page.js index 5ffb4b0..8d24007 100644 --- a/app/ns-framework-modules-category/http/get/get-page.js +++ b/app/ns-framework-modules-category/http/get/get-page.js @@ -1,9 +1,9 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const fileSystemModule = require("tns-core-modules/file-system"); // >> require-http-get -const httpModule = require("tns-core-modules/http"); +import { Http } from "@nativescript/core"; // << require-http-get -function onNavigatingTo(args) { +import { Observable, path, knownFolders } from "@nativescript/core"; + +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); @@ -35,7 +35,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onButtonTap(args) { +export function onButtonTap(args) { const button = args.object; const page = args.object.page; const vm = page.bindingContext; @@ -87,7 +87,7 @@ function onButtonTap(args) { function getStringExample(viewModel) { // >> get-string-code - httpModule.getString("https://httpbin.org/get").then((r) => { + Http.getString("https://httpbin.org/get").then((r) => { viewModel.set("getStringResult", r); }, (e) => { // >> (hide) @@ -99,7 +99,7 @@ function getStringExample(viewModel) { } function getJSONExample(viewModel) { // >> get-json-code - httpModule.getJSON("https://httpbin.org/get").then((r) => { + Http.getJSON("https://httpbin.org/get").then((r) => { // >> (hide) viewModel.set("host", r.headers.Host); viewModel.set("userAgent", r.headers["User-Agent"]); @@ -116,7 +116,7 @@ function getJSONExample(viewModel) { } function getImageExample(viewModel) { // >> get-image-code - httpModule.getImage("https://httpbin.org/image/jpeg").then((r) => { + Http.getImage("https://httpbin.org/image/jpeg").then((r) => { // getImage method returns ImageSource object // >> (hide) viewModel.set("getImageResult", r); @@ -134,7 +134,7 @@ function getImageExample(viewModel) { function getResponseStatusCodeExample(viewModel) { // >> request-status-code - httpModule.request({ + Http.request({ url: "https://httpbin.org/get", method: "GET" }).then((response) => { @@ -155,7 +155,7 @@ function getResponseStatusCodeExample(viewModel) { function getResponseHeadersExample(viewModel) { console.log("getResponseHeadersExample"); // >> request-response-header - httpModule.request({ + Http.request({ url: "https://httpbin.org/get", method: "GET" }).then((response) => { @@ -176,7 +176,7 @@ function getResponseHeadersExample(viewModel) { function getResponseContentExample(viewModel) { // >> request-response-content - httpModule.request({ + Http.request({ url: "https://httpbin.org/get", method: "GET" }).then((response) => { @@ -201,7 +201,7 @@ function getResponseContentExample(viewModel) { function getFileExample(viewModel) { // >> get-file-code - httpModule.getFile("https://raw.githubusercontent.com/NativeScript/NativeScript/master/tests/app/logo.png").then((resultFile) => { + Http.getFile("https://raw.githubusercontent.com/NativeScript/NativeScript/master/tests/app/logo.png").then((resultFile) => { // The returned result will be File object // >> (hide) viewModel.set("name", resultFile.name); @@ -222,8 +222,8 @@ function getFileExample(viewModel) { function getFileWithPathExample(viewModel) { // >> get-file-code-with-path - const filePath = fileSystemModule.path.join(fileSystemModule.knownFolders.currentApp().path, "test.png"); - httpModule.getFile("https://httpbin.org/image/png?testQuery=query&anotherParam=param", filePath).then((resultFile) => { + const filePath = path.join(knownFolders.currentApp().path, "test.png"); + Http.getFile("https://httpbin.org/image/png?testQuery=query&anotherParam=param", filePath).then((resultFile) => { // The returned result will be File object // >> (hide) viewModel.set("name_get_file_with_path", resultFile.name); @@ -241,6 +241,3 @@ function getFileWithPathExample(viewModel) { }); // << get-file-code-with-path } - -exports.onNavigatingTo = onNavigatingTo; -exports.onButtonTap = onButtonTap; diff --git a/app/ns-framework-modules-category/http/get/get-ts-page.ts b/app/ns-framework-modules-category/http/get/get-ts-page.ts index 3b1e71a..f07a813 100644 --- a/app/ns-framework-modules-category/http/get/get-ts-page.ts +++ b/app/ns-framework-modules-category/http/get/get-ts-page.ts @@ -1,12 +1,8 @@ // tslint:disable:max-line-length -import { Observable } from "tns-core-modules/data/observable"; -import { path, knownFolders, File } from "tns-core-modules/file-system"; -import { Page } from "tns-core-modules/ui/page"; +import { Button, ImageSource, path, knownFolders, File, Page, Observable } from "@nativescript/core"; // >> import-http-get -import { getFile, getImage, getJSON, getString, request, HttpResponse } from "tns-core-modules/http"; +import { Http, HttpResponse } from "@nativescript/core"; // << import-http-get -import { Button } from "tns-core-modules/ui/button"; -import { ImageSource } from "tns-core-modules/image-source"; export function onNavigatingTo(args) { const page: Page = args.object; @@ -92,7 +88,7 @@ export function onButtonTap(args) { function getStringExample(viewModel) { // >> get-string-code-ts - getString("https://httpbin.org/get").then((r: string) => { + Http.getString("https://httpbin.org/get").then((r: string) => { viewModel.set("getStringResult", r); }, (e) => { // >> (hide) @@ -104,7 +100,7 @@ function getStringExample(viewModel) { } function getJSONExample(viewModel) { // >> get-json-code-ts - getJSON("https://httpbin.org/get").then((r: any) => { + Http.getJSON("https://httpbin.org/get").then((r: any) => { // >> (hide) viewModel.set("host", r.headers.Host); viewModel.set("userAgent", r.headers["User-Agent"]); @@ -121,7 +117,7 @@ function getJSONExample(viewModel) { } function getImageExample(viewModel) { // >> get-image-code-ts - getImage("https://httpbin.org/image/jpeg").then((r: ImageSource) => { + Http.getImage("https://httpbin.org/image/jpeg").then((r: ImageSource) => { // getImage method returns ImageSource object // >> (hide) viewModel.set("getImageResult", r); @@ -139,7 +135,7 @@ function getImageExample(viewModel) { function getResponseStatusCodeExample(viewModel) { // >> request-status-code-ts - request({ + Http.request({ url: "https://httpbin.org/get", method: "GET" }).then((response: HttpResponse) => { @@ -160,7 +156,7 @@ function getResponseStatusCodeExample(viewModel) { function getResponseHeadersExample(viewModel) { console.log("getResponseHeadersExample"); // >> request-response-header-ts - request({ + Http.request({ url: "https://httpbin.org/get", method: "GET" }).then((response: HttpResponse) => { @@ -181,7 +177,7 @@ function getResponseHeadersExample(viewModel) { function getResponseContentExample(viewModel) { // >> request-response-content-ts - request({ + Http.request({ url: "https://httpbin.org/get", method: "GET" }).then((response: HttpResponse) => { @@ -206,7 +202,7 @@ function getResponseContentExample(viewModel) { function getFileExample(viewModel) { // >> get-file-code-ts - getFile("https://raw.githubusercontent.com/NativeScript/NativeScript/master/tests/app/logo.png").then((resultFile) => { + Http.getFile("https://raw.githubusercontent.com/NativeScript/NativeScript/master/tests/app/logo.png").then((resultFile) => { // The returned result will be File object // >> (hide) viewModel.set("name", resultFile.name); @@ -228,7 +224,7 @@ function getFileExample(viewModel) { function getFileWithPathExample(viewModel) { // >> get-file-code-with-path-ts const filePath: string = path.join(knownFolders.currentApp().path, "test.png"); - getFile("https://httpbin.org/image/png?testQuery=query&anotherParam=param", filePath).then((resultFile: File) => { + Http.getFile("https://httpbin.org/image/png?testQuery=query&anotherParam=param", filePath).then((resultFile: File) => { // The returned result will be File object // >> (hide) viewModel.set("name_get_file_with_path", resultFile.name); diff --git a/app/ns-framework-modules-category/http/http-page.js b/app/ns-framework-modules-category/http/http-page.js index bcc3fa7..919153e 100644 --- a/app/ns-framework-modules-category/http/http-page.js +++ b/app/ns-framework-modules-category/http/http-page.js @@ -1,14 +1,14 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Get", "ns-framework-modules-category/http/get/get-page"), - new link("Post", "ns-framework-modules-category/http/post/post-page") + new Link("Get", "ns-framework-modules-category/http/get/get-page"), + new Link("Post", "ns-framework-modules-category/http/post/post-page") ]; const navigationLinksTsc = [ - new link("Get", "ns-framework-modules-category/http/get/get-ts-page"), - new link("Post", "ns-framework-modules-category/http/post/post-ts-page") + new Link("Get", "ns-framework-modules-category/http/get/get-ts-page"), + new Link("Post", "ns-framework-modules-category/http/post/post-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -17,4 +17,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/http/post/post-page.js b/app/ns-framework-modules-category/http/post/post-page.js index cc603c6..41314a1 100644 --- a/app/ns-framework-modules-category/http/post/post-page.js +++ b/app/ns-framework-modules-category/http/post/post-page.js @@ -1,8 +1,9 @@ -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; // >> require-http-post -const httpModule = require("tns-core-modules/http"); +import { Http } from "@nativescript/core"; // << require-http-post -function onNavigatingTo(args) { + +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); @@ -13,11 +14,11 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function makePostRequest(args) { +export function makePostRequest(args) { const page = args.object.page; const vm = page.bindingContext; // >> http-post - httpModule.request({ + Http.request({ url: "https://httpbin.org/post", method: "POST", headers: { "Content-Type": "application/json" }, @@ -40,5 +41,4 @@ function makePostRequest(args) { // << http-post } -exports.onNavigatingTo = onNavigatingTo; -exports.makePostRequest = makePostRequest; + diff --git a/app/ns-framework-modules-category/http/post/post-ts-page.ts b/app/ns-framework-modules-category/http/post/post-ts-page.ts index cce605b..312e01d 100644 --- a/app/ns-framework-modules-category/http/post/post-ts-page.ts +++ b/app/ns-framework-modules-category/http/post/post-ts-page.ts @@ -1,7 +1,6 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { Observable, Page } from "@nativescript/core"; // >> import-http-post -import { request, getFile, getImage, getJSON, getString } from "tns-core-modules/http"; +import { Http } from "@nativescript/core"; // << import-http-post export function onNavigatingTo(args) { const page: Page = args.object; @@ -18,7 +17,7 @@ export function makePostRequest(args) { const page: Page = args.object.page; const vm = page.bindingContext; // >> http-post - request({ + Http.request({ url: "https://httpbin.org/post", method: "POST", headers: { "Content-Type": "application/json" }, diff --git a/app/ns-framework-modules-category/image-source/image-source-page.js b/app/ns-framework-modules-category/image-source/image-source-page.js index 5c6e0db..2b77645 100644 --- a/app/ns-framework-modules-category/image-source/image-source-page.js +++ b/app/ns-framework-modules-category/image-source/image-source-page.js @@ -1,14 +1,14 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Load image", "ns-framework-modules-category/image-source/load-image/load-image-page"), - new link("Save image", "ns-framework-modules-category/image-source/save-image/save-image-page") + new Link("Load image", "ns-framework-modules-category/image-source/load-image/load-image-page"), + new Link("Save image", "ns-framework-modules-category/image-source/save-image/save-image-page") ]; const navigationLinksTsc = [ - new link("Load image", "ns-framework-modules-category/image-source/load-image/load-image-ts-page"), - new link("Save image", "ns-framework-modules-category/image-source/save-image/save-image-ts-page") + new Link("Load image", "ns-framework-modules-category/image-source/load-image/load-image-ts-page"), + new Link("Save image", "ns-framework-modules-category/image-source/save-image/save-image-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -17,4 +17,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/image-source/load-image/load-image-page.js b/app/ns-framework-modules-category/image-source/load-image/load-image-page.js index eee1744..bd41498 100644 --- a/app/ns-framework-modules-category/image-source/load-image/load-image-page.js +++ b/app/ns-framework-modules-category/image-source/load-image/load-image-page.js @@ -1,26 +1,26 @@ -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; // >> require-image-source -const imageSourceModule = require("tns-core-modules/image-source"); +import { ImageSource } from "@nativescript/core"; // << require-image-source // >> require-file-system -const fileSystemModule = require("tns-core-modules/file-system"); +import { knownFolders, path } from "@nativescript/core"; // << require-file-system -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); // >> image-source-from-resource - const imgFromResources = imageSourceModule.fromResource("icon"); + const imgFromResources = ImageSource.fromResourceSync("icon"); // << image-source-from-resource vm.set("imageFromResources", imgFromResources); // >> image-source-from-local-file - const folder = fileSystemModule.knownFolders.currentApp(); - const path = fileSystemModule.path.join(folder.path, "images/logo.png"); - const imageFromLocalFile = imageSourceModule.fromFile(path); + const folder = knownFolders.currentApp(); + const filePath = path.join(folder.path, "images/logo.png"); + const imageFromLocalFile = ImageSource.fromFileSync(filePath); // << image-source-from-local-file vm.set("imageFromResourcesLocalFile", imageFromLocalFile); // >> image-source-base64 - const imageFromBase64 = imageSourceModule.fromBase64(base64string); + const imageFromBase64 = ImageSource.fromBase64Sync(base64string); // << image-source-base64 vm.set("imageFromBase64", imageFromBase64); page.bindingContext = vm; @@ -28,4 +28,4 @@ function onNavigatingTo(args) { const base64string = "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"; -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/image-source/load-image/load-image-ts-page.ts b/app/ns-framework-modules-category/image-source/load-image/load-image-ts-page.ts index 3ef1c18..5b5d266 100644 --- a/app/ns-framework-modules-category/image-source/load-image/load-image-ts-page.ts +++ b/app/ns-framework-modules-category/image-source/load-image/load-image-ts-page.ts @@ -1,33 +1,30 @@ // tslint:disable:max-line-length -import { Observable } from "tns-core-modules/data/observable"; -import {Page} from "tns-core-modules/ui/page"; // >> import-image-source -import {ImageSource, fromFile, fromResource, fromBase64} from "tns-core-modules/image-source"; // << import-image-source // >> import-file-system -import {Folder, path, knownFolders} from "tns-core-modules/file-system"; +import {Folder, ImageSource, knownFolders, Observable, Page, path} from "@nativescript/core"; + // << import-file-system export function onNavigatingTo(args) { const page: Page = args.object; const vm = new Observable(); // >> image-source-from-resource-ts - const imgFromResources: ImageSource = fromResource("icon"); + const imgFromResources: ImageSource = ImageSource.fromResourceSync("icon"); // << image-source-from-resource-ts vm.set("imageFromResources", imgFromResources); // >> image-source-from-local-file-ts const folder: Folder = knownFolders.currentApp(); const folderPath: string = path.join(folder.path, "images/logo.png"); - const imageFromLocalFile: ImageSource = fromFile(folderPath); + const imageFromLocalFile: ImageSource = ImageSource.fromFileSync(folderPath); // << image-source-from-local-file-ts vm.set("imageFromResourcesLocalFile", imageFromLocalFile); // >> image-source-base64-ts - const imageFromBase64 = fromBase64(base64string); + const imageFromBase64 = ImageSource.fromBase64Sync(base64string); // << image-source-base64-ts vm.set("imageFromBase64", imageFromBase64); page.bindingContext = vm; } - const base64string = "iVBORw0KGgoAAAANSUhEUgAAApoAAADfCAIAAADZZOReAAAAA3NCSVQICAjb4U/gAAAAX3pUWHRSYXcgcHJvZmlsZSB0eXBlIEFQUDEAAAiZ40pPzUstykxWKCjKT8vMSeVSAANjEy4TSxNLo0QDAwMLAwgwNDAwNgSSRkC2OVQo0QAFmJibpQGhuVmymSmIzwUAT7oVaBst2IwAACAASURBVHic7L15dFvXle757XMHAAQIggDnWRw0UxI1UdRATZZsx47jIYljJZ5ScWI7jpN69aqqq9/q12+9tarq9euq9KqX6jipqlTKSey4Uyk7cWTHgyx5kK15lqx5oAZKokiKM4np7v4DlKwoGnhBAPcCOL+FZEUhLnBwcXG+e/b+zt7EzJBIJBKJRJLOCKsHIJFIJBKJZLxIOZdIJBKJJO2Rci6RSCQSSdoj5VwikUgkkrRHyrlEIpFIJGmPlHOJRCKRSNIeKecSiUQikaQ9Us4lEolEIkl7VKsHIJFIJJJsxxgJ8sBANBolTVXcbuFwWD2i9MN2ch6JYmAQXb3o6OKOLlzqRk8/BgYxHEQwSAxZw84EBHI42OWAxw1fLgr9KAqgKECBPHjcUBWrxyeRSLIbZo62n490XBretGX4vQ0Xui5FiosLVyzztyxwBPzO0lIIGUIeK2SHIq/hCDov4+RZPtZGJ87w2Qvo7sXgEMIRikQZIKsHmBmwqpCmsjsH/jxUlKC2kuqreUIFFeRDs919nUQiyWSi3ZdDhw6H204PbfgwdPAwB0cAXDAiXWwws+505k+bWti6xDOhJrehXi8utnq8aYCVch4Moa2d9xyk3Yf4WBu6ehAK06h28+h/JEngs5Osaxzwob4asybTzClcXUYO3eLBSSSSTIY5uGPXyIFPQ4cOj2zfRb29DBhX/hiT8yizIAKgAJo31zdjhm/qlPwpk/PmzFbcbgvHbnOskfP2Dmzbx5/spIMnuKcPILpGv+VyPDVcPc8EAph9XkyppYWzeV4jlRVZPDiJRJJJsGFEzrUPr/8gePBg+Ojx8NlzKnP0jxZtMTk3mIk+U4FYVtBZXOytr8+rrSlc1uqZNk2oKkgqxR+QUjmPRnHkFN7bhE92cvslMvjqKlxKuLXEzj+BIAhlhbxwNq1swcQaKDK/LpFI4oWDQWN4ZGT7jsG314VPnjIuddLw8LXL8eu4oZzHoNhGLEVxFhV6SkoCc+cU33Wno6hQOBwk5ykAKZPzSBQHj2Ht+7xpN3r6rsbTpYrbjSu6Dvi83DIL9y6jKfXSNCeRSMwQiUQ6uyIXLg6+9c7Ilm3Ryz08NCRuruJXuYWcXyX2B6HruseTV1VVeu/debNm6j6flp+fwE+QjqRCzo+dxm/W8YdbqWdALsfTgs8W6z4PWufz/XdQfZXVg5JIJLYncuFi5Fx76OChwbfXhU6eQiQC47Yi/hljkfPrEIricLsL5jQVrlzpLi9z19Qo3ty4xp72JFfOL/fijQ/w+npcuBT7P6SQpxGfrdRLCnHfCtyzFPl5Vg9KIpHYD2N4OLh3f/jkqZGt24O79vDAIMc1zcch51chhruosGDRwrwpk731dbnTp5GaXTt2kiXnhoEdB/Cz32LvIWYmKeRpy6ioE/GMyfTYFzBnmtwIKpFIRgkdOTr8yebQsRPBffuN8xcEEB3Hq41HzmMoABN5J9TkTZ/unVBTsGhhTl3tOEaUTiRFzvsG8Ou3+bV30dtPAINZWhDTm9FvkPJy+YFV+OKd5PVYPSSJRGIRHIlwX//ghg9GtmwLnz4TPnNWjUQMZhNR9ZswfjkHwIACCCLS9ZyqSm9lZeG8OYGVK7U8LylKBotR4uX8+Gn+519h8x4yDICNDD53WQczSAiBBTP5mw9TbaXV45FIJCmEg0FjaCh07MTgb9eGDh2OdnXz4CCNweA2dhIi59ciAAZUt9vh9/vr6krvvTt3RqPqcik5OQl5fVuRSDlnxqbd/KNf0qlzkIvyzOTKMr2mnJ9+BC2zEvWjk0gkNoWZoxc7Ipc6hz/6eHjDB5GLHRwKkWEkI02bcDnHtSYgIqHrrnxfcXNz0V2rnUVFzuJi4XIm6o0sJ2FyHonizQ/4X39N3b2QmfKMZvTX4c/D17/In1tKchubRJKRRHt6QkeOhU+1DW34IHTgII+MJPsdkyHnN0RRlNyKiqJlrb4Zje7Kipy6uqS+XWpIjJwHQ/j12/jZb3h4hGSAPStgBgmXkx+7n754J2RpWIkkY+BoNLjvQGj/p8FDh4Pbd3DXZaYU1dxOmZzHUAChaXmTJ+bPmZM3ocY3e7ajrDQF75skEiDnwRBe+h1eXotQSCbLswlmkNB1rLkXX/28VHSJJO2JXLgwuG5D6OCR0NGjkVOnVSCKlJYBT7Gc85VicwogPB5vQ4O3rjYwu8m/eGE6Focfr5wHQ3jpdX75DQqFZLI8+2AGka7Tmnv4q/fJ9i0SSfrBoRAHg8Nbtg+tWx8+fTrafp6GblWHNamkWM6vQwGYWQ8E3KUl+RMnFt212jttqtC0dNm/Pi45j0Tx/72Bn74GqeXZyxVFf/IBPHyPLAcrkaQJkUi0pzdy8eLg2t8Pb90R7e7iwSFxxfdkFdbK+VXTHAGsKLrb7SkqLFq8uPCOFY6CAs3nI3t3ko5fzpnxuw38/76E4RFILc9qmEHkcuLbX8Xnl0uvu0Ria6KdXZFz7cF9BwbfWRc+dYqDodQG1G+FtXJ+A5hJVTVN89XVFd+5yjt1iqu01FFi0+br8cv5pl34H//El/uk900ymkfP9/L/9k1qabJ6MBKJ5I8wRkZC+w+ET7aNbN85sm2H0T9gw71HtpPzayBmh9ud39QUaJ7nqa7yTp+m+XxWD+oPiFPOT57Ff/0HbmuXWi65AjNIVJfxf/8uTaiwejASieQKoWPHRzZtCZ04Gdy1J9J+XhlfHdakYmc5jyEAAhyBQP6smd66Wv+smXmzm0jTrB4XEJ+c9w7gb3/En+ySWi75Q5hBYmET/9XTlCerwEokFhKNGoNDg+9tGNm+I3LqdLitTQ1Hoomow5pEmM8bkS42GLCtnMegK8XhXWWlnpoJ+RPri1avck+YAEWQdT0tTMt51MCLr/LPX6do1C7pFomtUBR69D5+/EFSZKcWiSS1cChkDI+EjxztX/v70KHD0UudGBgYZ1uU1MDMILpIRlckYufV+XXE9rmRrusBf15ZWVFra8GKpZo3T+S4Uq/rpuV8+378t3/kvn7Ium+SG8EAeXPx356judOtHotEkiUwRy91Ri51Dn+yaei996MXLhojI0mqw5ok2DCoKG9wWs3pbQfDvQMi3fo2EmAwqw6H7nb7J08quedznokNDr9fy09dft2c7b67l//tNfT1yzC75GYQmPv6xYuvcV0V5XutHo5EktFEe3vDx06E29oG170f2n+Ag8GrNvV00nJmNgzH7Mach+7vaP9BpO8op88CPQYDIIqGQsOh0NlNm89v2ery+Qqa5wUWL3aXlXoa6oXLlewxmJBzZrz5Ae0/woDclia5OUQA7zuCN97HVz8vrxSJJCmM7NkXPnw4+Onhkc1buas7ZXVYkwEzC79bmz/PMXFG4bKWoWOnoqFwesk5rglWE2AYxmB399Cbb5/5/du5FRX+BfPzJjbkTZ7smTY1eQMwIecnzuC377FhQIbZJbeDDYN++x63zKK6KqvHIpFkEJHzF4Y++Ch0+Ejo08PhtlMqw2DmtJ6PmWEY6pTJ2oyZxChaesfFt94bOtlu9bASQOweq/fs2cFfnz2jqrk1E/KmTvI1NBQsa3WUlSX87cYq55EoXnuXL3SCZMUYye0hMF/opNfe5e89IVuuSSTjIxIxgqGRbdsH160Pn2yLnmunoaHRv1g7sETAzOR1afNnicIyGOwoLC5cvuT06X/nqJF2C/SbEQEQifQeO9p/7Oi5nBz367/Lq6oual2cv2SR4nKRpiXkk47VCrfvCP7q+zEHnEQyVry5+Nv/RI0TrR6HJTAjGoVhIBodfRjGaF6T+bM6XESjDyFGH4oy+kg3N9AozDAMGAYikdGPH/vghjH61xhXP3jss1/9yLH/zpR5fDxwJMJ9/eELF4beXje0aYvR1W0MDAhma+uwJhaOLc2n1nv+61+qpTWAwaDBU8f3/Ze/Cp6+ZOGmr6QSK6arut1On6+gsbHk3rvd9XWqx6OML78+ptV5JIK1G1g64CTmYO7rF2s38JTadGlhMD6YEQ5jeBgDA+jtxYULOH0a587h7Fm0t6O9HZcvY3gYIyMIhRCzLCkKNA0OBzwe+Hzw+1FcjKoqVFWhogJlZQgE4PXC7YbDYWt1j0YxPIzBQfT1oaNj9FO3teHsWXR0oLsbvb0YGkIohHAY0ShUFboOhwMOB9xuFBSgrAzl5SgrQ0UFKitRVIS8PHg8cDqRFVfPHxC51Bm5cDF86PDgG2+FTrZxKIjo6F4zW28cjwty6trCmUpJVaxcNAHO4uLC1iVnX3o17QxxYyQKEBAeHAwPDg6cP39m/Xp3UVHx0taCJYuchYWO8jIRV12aMa3OD53AX/zf3NMXx+tLsh2fF//zz2lyrdXjSB7MCAbR04OLF3HyJI4exbFjOHECp0+js3NUw4wxT8JEUFU4nfB6UVqKCRPQ0IBJk1BXN6rubjcU22QvwmH09aGrC2fO4OhRHD6MY8fQ1oaODvT3Ixj8LCAxFhQFug6PB0VFqK5GXR0mTsTEiaiqQmEhvF7Yo/ZW8uBgMHjgYPjMmZFPtgxv28EDA1aPKOkwG6KyyPvf/w+15moQjyGUnt3bD/7134yc6xJZUL9i1IzGrKpqfkNDoHVxbl2dd9JEZ6W5+pq3v+1lxrpPuFcuzSVxwNzbL9Z9wpMmZOJNdiSCnh60t+PYMezZg127cPAgzp/H8LAJ/b6O2BI/HEZ/P86dw/bt0HX4/airQ2MjZs3C9OmorkYgAKfTst8jMwYGcOkSjh/H3r3YvRv79+P0afT1ITKOZG5siT88jEuXcOAAFAUeDyor0diI2bMxfTomTEBpKTweWwcq4iJ8/OTw1m3h4yeDO3eFz5xViDImnH5rSAh9wSyl4tr7fYJheOrqAy0Lzv16baYu0K9l9OMRRaLRzkOHLh86pDidvhmNeVOm5DXU+VtaVF/emF7ntqvz85fwn/6Wz10c74glWUt5Mb7/V1RaaPU4EkgwiM5OHD+OLVvw8cfYvx/t7RgZSW5nKlVFfj4mT0ZzMxYswNSpqKiA251SbTMM9Pbi1Cns2YNNm7B1K06cwMBA/LcvY4EIHg+qqtDUhNZWzJ6N6mr4fGkfhDeMaF//8MZPRrZuD59sC588qYbDdq/DmliY4fd4/+b/VCdO/wPNZoaqXtq44djf/8PIhW4SlPGKfi18tdgcoPl83oZ6b1VV4dIlvrlzhUO/xYG3l/PX38P/8yIiEbbkfF7jHIpzphSUCXaKmJGIzTtgCKArvwWrvkFVpT99HPettODdE08wiAsXsH8/Nm7ERx/h00/R25tcMftjHA5UVWHBAixfjjlzUFOD3Nykf7uGgcuXceIENm/GO+9g5050dIxrLR4HQqCoCLNno7UVLS2YNAkFBTZKPZghevlyzw//KXjgYPTSJe7tS4s6rAmGmQHn5xblfPt7Iif3j/8eHuw78v3vd7z9PgmRVXJ+LTFdN4hcgcCs//HX+U2zbvHk29zeBkPYuBPRKIhSvdecmQ0DQsDtgt+HQB65c0xPWcw42oaLnUzpfHvHzLlumtYAVTH3GZgxOISuXu7uweAwotGYZTilJ4KIo1HauBN3LsEt7yxtTziMzk7s3Yu338Z77+HYMVzZLJRqgkEcPYqTJ/H++2hpwV13YcECVFXB7U7K2zGjvx/Hj+PDD/HWW9i5E11dV51ZKcUwcOEC3nwTGzdixgzcfTdWrMDEifD50i78zn39g2+vw8gIAM5CLR/dn+bUl99Brhv0a2JmLdcXWDS/Z/uuUFcvZetmh9i1wcwjnZeiw8O3fvJt5Px0Ow6diK0IU3cqY0Ke68bUesyfSVPrUFoIdw60uEJrm3fz//VP6OlP4wSMYaCiBP/labhzTB8bjmBwiM5fwqfHsW0PHziG/kFOragTwIdO4HQ7NdSk6j0Ti2GgpwcHDmDdOrz1Fg4cwOCg1WMCIhGcOYPz57F1K5Ytwz33oKUFxcUJDkEHgzh9Ghs34ne/wyefoLPTGiG/jr4+bNyI/fvxwQe49160tqK+Hjnm7/etgwESIovi6tfBzIahz21UautuOBcREQzDP2/hxUnvXd68U1Yu05wuVb/Neug2v/zdB2MmOE7NuWSGYbDbhZYmfH4FTauHyzneN140G4/ezz96JZYvSMtLImYGUVVoqunxaypynCj0Y8YkfGEFDhzD2g38yU4MDnPqIliM3n7afZAbatLw/AeDaGvDunV49VXs2IHe3uQmyM0SieDUKbz8MrZvx0MP4e67MXUqPJ4ECJthoLsbO3fitdfw9ts4cybVofXb0tODd9/Fnj3YuBFf+hIWLkRxcbrE3klR4HJZFuCxGmYWuQ69ZZHwF+Dmpcn0XF/hyta+fYciA0NpOnsnBAL0XI8Yj5xHIth9CMxASiLtzGwwGmrw+AO0sAkOPTHvKAR9YSXOXODfvgtGWip6osbsctLc6WiciE278OJv+MgpFqnpK0zMTLsP4YFVaeVeYkZPD3btwn/8B954A2fP2mJhekNCoVE73u7d+PKX0dqK0tJxCVsohJMn8fvf49e/xu7dtohG3BBmXLyIV1/FwYP48pdxzz2YNAk55qNYqUdVlfy8aFdX+s1HiYANQ586UZ0+lUi99V76QPPi8/Vv9e89nLKx2RACHAG/drsL+1aT66VuHG1Daiq0x4xuy+bjW1+hqlIk9h2dDjz5ALVf5C17IERaKnoCcei0rJnrquhHr/CH25CSfSAE8NE2XOpGaVGS3ypRRKM4dw7vvINXXsHWrehPh4KI3d144w0cP44TJ3DffZg4EU5nPK/T349du/DKK1i7Fu3t9r2JuUokgn370N6O/fvx1a9i4UL4/XYPvGuaEgjQsRNWj8MC2GBy6+r8uUppFW5n5Ne9+SWrVwwcPIGwzYJDqcVRXKzm3sAweC23kvNT7ejquUUgJGHEtPzuVjyzJtZSM+HvR4F8PLMGF7v41FlZQRIAVZbyn/8JeXL4zQ9SoejM6OrBqfY0kfNQCEeP4te/xi9/iWPH0kDPrhKJYP9+XLqEU6fwta9h7lx4buAzuhWdnVi/Hi++iI0b0ZdWpaO6uvDqq2hrw5/8Ce66a7zxiSSjOBxqaSllULnWMRLrharV1OhzZxMpMKK3mY6JAgta29/4/eCnp7JzJcaAAriqqpS82zScvpUd9OgphCOU7HoGsRh767zkafkoDdV45hHyeRHvlrcMg3xePPMItc6DwUk/J0QcjtDRU0l9kwQxNIQdO/DCC/jnf8aRI+mk5Ve5eBGvvIK//3u8+y66u8ea7DcMnD2LX/0Kf/d3eO+9NNPyGOEwtm7F3/0dfv5zHD+OcNjqAd0ch65VZ2W3QWZyqursRqVm0lhKkxGR7ssvueMOUkXWTt2C4CgqErcLtt1Uzg0Dx88k3dMe2049sQZPfyW5Wg4AoJYmPHY/6ZpU9Bijij6xxlwtzvjeC8DxMxy1uZd3cBAff4x/+Ae8/DLOnbOX680Ug4N45x18//tYuxaXLt3+gxgGTp3Cz36GH/wAu3YhGEzJKJOAYeDwYfzgB/jxj3HwoG0VnTRNrUh8i0ybw8wMFkUBx+KFRDTG3xfpDv+8FteEMjbS9vc4bpQx7Oy6qZyHwjh3IemRIGbOceHx+1GZ6Hz5DVEEfWElPrcUSP56NE2gihI8fj/cruSfEMa5C+gfsLFEDg7iww/xj/+ItWtx+bLVoxk3oRA2bcL/+l/47W9x8eKtzns0ihMn8NOf4l/+BUeO2M7BHgfnz+OnP8WPf4wDB2yr6MLhyLbtV8xMqqLOmqzWTxt7HpeYnaWlhcuWkZqN8zYBpGiq7rjtM28q54PD6O6NpwzZ2ImF2Rc2UUsTpeyydjroyQdp3ozYejTrrowbQS1NtHA2JTvkzuDuXnT1wKYL9JiWv/AC3nvPvkZus0Sj2L0bL7yA119HR8eNFd0wcPIkfvpT/PznaGtLdYW75HH5Ml5+Gf/0T/ZVdFWBI8ObylwHEZHH7Vy1CopqwsHErDhz/HPm5lSXc9TIwnlb9bi13NubYG4u50MYGEJS8+bM8Lrx+RWc4mJhgXx6Zg1NqEhBhDk9cOi4dzl73ck9G8QYGEJHly1/jMPD+PhjvPAC1q/PHC2PEY1izx78+Mf4/e/R3X39X5lx9ix+/nO89BLOnMkcLY/R04Nf/hL//M84fNiGIQfSHSJJhfxsC0FtalAbpppzIxPBMHIbJvkXzCf7uhuTBTFreV4t7/ZdWG4q5/2DHI4gqXpuME9roGn1qVuaX6WhGk8/QvnSFjcKTaunaQ1kJFnPwxF0dNlPMsJh7NqFf/1XbNiQaVoewzCwdy/+5V+wYcP1BreODvzqV3jllQzU8hg9PXjlFfziFzh92m4fkBwOkZdHWeNtZ2Zy6I47VpEzx7RHnVk4XP7mec6KkmxboBORHgjogcBtn3lTOR8aIcNIotAysyCaPwOuuHbGjhtqacKj0hZ3BZcT82dA0O1b8owDMgzq7CF72VmiURw5gpdewrp1yOD20pEItm3DT36CrVtjdcIBoL8fa9fiF7/AiRN2k7pE0t2Nl17Cb35z03SDRQiPWwkEiLMlfc7M6qx6bUpjPAX2iWAYedOb8mZMJ/PFMdMXBgSRXlSoF91+j+9NT+tIEEYy511meHIwpQ5WmUFGbXHLpC0uBk2pgycnudOdYXBPn80aQLa349//Ha+/jq4uq4eSZEIhfPQRXnoJBw8iEkEwOPrPQ4dsGIhOMGfP4ic/wbp1ttp9J3Jz1bLSLNlLzczkUByty4Qvn+KdZRSHq2D5Ej2Qz8y2ujNLHgwQs+71Kjmu2z75pnIeDCW3/Ccz+30W98B2OuiJB2iutMUBAEoL4fcldXUOIuofgI1W5319ePtt/PrXaG+3eigpYXAQb76J117D2bP49FP84hfYvj2N96SZ4tAh/OQnttqDJzxutaxUZIWag6OGOrlGbZxBqh5/GS/DyJ8xN3faRKFkyx50AgxmVRuTv+ymch6OJLl6DMifB/ftbziSS0E+PfvIqC0uy3G74M9DspvtjISS+vJmCIexcydefRVHj2bR19/RgVdfxWuv4Wc/wwcfpEfx2oRgGNi8Gb/6lY2S6EKQ250NssTMpAm9pUUpLR/XySdSnDnFd60WOS7OjqgGAaSpumdMlslbyHniRnRDGJ4cWzTkaKgZtcUlNblgf1QVnpykVxoYDtomSHb6NH7zG2zZgpB9bjFSwpEj+NGP8Ktf4eJFq4eSWkZG8PrrePdd9PRYPZRRSFWiyd0/ZAOY2YgqteVa00zSnOP//efPmJM7vT4rxBwAIBwO3ecb0zNv9gdK8iqNCUQ2qZ0+aovTsrJGwVViX0dKfDk2OMmDg1i/Hm+/nQnlYswSDuPIkfTorZJw2tvx8svYu9cm93DkdLKu2WIWTBrMTIrQmmaq9ZNvX6H9dhCRmuMpuetO4dSyYbomQHW7HYUFY3myeYdhgrDVFRyzxd2zDIysVnTY7HtJFsw4ehRvvokTJ2wTK5CkBGbs2IG1a20SmRBut+J2Z/KPjpmZRUmh3jKX1AQszQFAUXwz5uROq8uOuZpVr9dVPqZ6wJbJud2IVYub3yhtcVlAXx8++QTbt9tkiSZJKSMj+P3vsXfvZxv2rEPkeUWeN26nt/1hMKlCnT5RmzoLxu0browFYnbk+0vuWC0cSmbP1QwQSPN6nRUVY3m+lPPPiFWLq6mQip7RGAaOHMG6dbhwweqhSCzi2DG8+SYuXLA8NqMEAsKfn6l71ZiZmYTX41i+iBzuhJkEiEjT82bOyp1Sx0Yml5RhgADN6RQ5OWN5vpTzP+CaJqq2yPBKEk9sab51a+ZvtpbcjFAI77yDPXssX6ArhQVqQUGmyjkAElCmVGsz5oONBKby2DCcZZUFi1tJz+Sir7HzpTnGWmpNyvl1jDZR1TQYUs8zkpMnsXGjTVKnEstoa8P69ejstHYUwuUU3twMtraTQ3esWEYud2Jtz8QsVD1/dpOnvoaj0UxdoBPAQuh5uWN8vpTz61EE3bcS9y4Fst4Wl4GMjGD/fuzdK5fm2U44jI0bceqU9VeCqmbwykHUl+lzFiZ+CxMRjKinbnL+vDlCVy1PmiQPoWnOorFWW5NyfgNcDnr8QZonbXGZx4UL2LYNZ89aPQ6JDTh6FFu3Wl/21ek0hMi8WYaZoZBz5XLKzU1SNoEUpWDRImdFGTNn5ETNgNB1V9mYbO2Qcn4zCvLp2c+aqGbghZKNGAaOHcOuXRgetnooEhswMICPPrI87aJ4c6FlYFMRZlZqS7U582lsBUrjeQvDyJ00zTd7utDUjJylCVBczpzaCWN8vpTzmxJroiptcZnDwAAOHMDRoxkcmpOYgBm7d+PYMWv3Kyp+v3DlZJicMzOBHa1LlOLS5E2eRCQUtXj1Ki3go4zLjcZs7cLhdFVXj/EQKee3QNriMovOThw+bJ8CnxLr6ejAp59a629XCwvI4860W8yoIaqL1KYmcia5SyNzbv1U35xpUESmnUOAAVXVhD7W8IaU81sxWi1O2uIyg/Z2HD0qS8dIPmNkBHv3WtuHRikvEx6PyKC9aswMwfqcOWptPQxObilvIqHrJXd9TvXk2KRmeKKIfRin28SmACnnt8HpoCdktbgMIBLByZNoa8u8W3hJ/DDj4EF0dFg4BLW4SMn1JLtHRiphg0VJQGueQ+48Mz83BgASn/3vsUK5DVPz5k03c0iaQOTw5499v76U89tTkE/PPCKrxaU5wSBOncKlS1aPQ2Izzp3DqVMWtkwlRYGqcaak85iZBKvTJmnTZpBhmLhLYeLQyPCpw9HhIVOdoIhIcbtLVt2teJwZNj8LIVylxWM/h1LOx0RDzTXV4iTpyPAwzp2TnnbJ9fT3o63N2g7o5HJGM2VmYWbhy9Vb5gpvAGzmrAoROXG446V/C3ZcNBs2F6R4J0/Ja5rG5+UoDQAAIABJREFUNulknyiEyKmuJjFWmZZyPkZo4VVbXKb88LKLoSG0tyMctnocEpsRCuHkSWvlXOTmkqJaOIBEwcxEELWV2ryFZnuhMhvhHbsHP9zRtfnDaDho9o31/IKiFSsVjyOTFuikqjkN9VLOE4+4aotjGXJPQ4aGcOGCtbO2xI5EozhxwtoLQwn4SVMzYE5hZrgcjtZm4fWbi2QKEW1vC+/ew4PBC2+vC/dcNjfHEpOi5E2d5m2cwtHMacqiKIqzvHzsz5dybgKng558iJpnyiR6GjI8jK4uqwchsSVnz1qbRVNLiqFpGeCFIyKlvNCxaHnsH2M9jJmZI4cPRw4dY6GMnOnoWP8WmM18KcSG4SyrCrQsVNx6ZuRECVBVjRQTPWaknJsj4KNn1lBtpVT0dCMSweCg1YOQ2JK+PovlvLKSHHrayzkzhHCsXIy8gLmqrkRGT1d42zbuHSYiIxi6tOGjYKe5DDoBBPjnzfU0ZE7XVD3XM/ZIO6Scx0F9FZ55hPJNbcGQWE40KnecS27M0JC1P2ZtQjU5x9oE07Ywsyj36y2tpGrmjiSKnj0T2r6HhAIAjMFT5zreXwdhsjKMYeRU1ebPn63kZEIG3QCcgYCQq/MkQwtm4fH7SddgGGl/0WQL0SiCJv01kixheNhaORcet9D0tJ5KYi1QHK3NorjEbDUXHhkKb9tsXOqNLceJKDo43PXxluH2NnOKTkSMwmXLXeVlGVDzVRC5ykpJM+GRlHIeD0LQ51fg3uUgSvuLJlswDGlrl9wYy7cvErGe5sF2hijN0xYsIZfbVBEYZjZ6Lgc3biK+UkqHCKCBw8e7Nm8GEZu6O2DOqZjga2kiPe2bsjCQU10tNBOhDinnceJ00OMP0PwZMomeJjBLW7vkxlh+YRCJXLc53bITzMxsOObNUauriWnsVcwAgI3wjk18uvPag4go0j/U9fGm4fbTRCYX6EIUr75bD+QnqStryiCCZ2I9STlPDQEfPfuZLc7q0UhuDRHMZKEkWYSZGTM5kOr3p3HJcWYRcKvNzZQXMLs056HB4AcbORK5Tn1JKL37P728Zzezuf3rANxl1f4lc9P4fAIACKQFAqYOkXI+Luo+s8VJPbc3QkDNhEodksTjcFg89ROU0hJTHmb7wMxsGFrjNG3KFDI5DTIQ/nRX5NBp/iMTEgmK9o10vv/+yKUOcxb3WFOWlXdpAW9aT8ua7jDlg4OU83EjbXFpgpRzyc0YcwPKJEFCaNVVSFs5Fz63Nn+2UlBqLm3BTNFI6P2PeHDohn8nRfTs2t+3f48RjZgaEhHlVE8ILJqXvnLOgJ7rEWZ8cJByPn6u2uIgbXF2RgjLZ22JTXG5LB4AkVZXm47JIGYmZmVCtT6vGYZhqnQMSESOH4wcOMaR6A3z3EQUHQxeePetcF+fuamVWXPnFi1bqQVy/3jdnxYQ4MjPV3SHqaOknCcAp4OeeICapS3OzmgacnKsHoTElvh8ludZ1aICUpT0a6vGTG6H1jJLFJWZMxARMXFo6zbj4iUC3cy2RkR9Ow/27t9t9sVB5K6t989rYk7LkjIEdpaVCpPVCKScJwa/tMXZHF2H12v1ICS2pKjI+kA3EVQtvZqex2RSlBQ6Fi8jkLlbIiLjfFtk134eCt3iQCKKDgfPv/G7yPCgKVVmZkegsGBJq+Z3p6eck6uyQvN4TB1l9UWcQdRV4Zk10hZnVxwOOyzCJLaDCCUl1l8YQghPTnqtzpkZmqIvmiVKK80tYphBFN63P3L8JIS49Y4yZvTvO3p593ZTYyNmMHunTsub0Yj0XKC7qqvIJVfnlkELZl6xxaXh1ZPhOBzIz7d+1pbYDSFQVmb96lwIxedLr9U5EYmA17F0FQnF9NK8pzOyc7fRPXjb3eHEHOkfvPj7t80t0IlgGM6icv+C+WqeJ+0y6MRQ3eaW5pBynlg+qxaX/iUGMw2XC0VF0twuuR6XCzU11su5oihFhRaPwQzMTET6glmissZcwRZmFiJy8mRo1x4S4rb3AUTEUe4/cPjyjs0khJkuawTDCCxYmNtQR6NVaNMDBhRNVXXT5RCsvIjNdcBLE2K2uHSsFpeRX8dnuFyoqLDewyyxG3l5dpBzoWlqeXmaRY+8TseKVaSbbB5DhKGByM7txoUeiDF8XiIiCnZe7vxgY2Soz+Stg+EsLPEvnKt4XMxpo+gEqO4cxWHO1g5r5ZxMmifiwGCOpjzM4vfhmTS0xaXg67AShwNlZdINJ7me4mKUlVl+6ZOmaROqrR2DCWKlY5pnKNUml+YAA9HOS8HNW8A3NbRfBxHA6Nmz7/KuHWabsoBRtOwOV0VZGs1txOzw+TS32+yBlsk5Aw4dikiu3A0N471PMBJMsahSfRpWi1MEO/T08uKYQVVRWoqCAqvHIbETRKiuRn6+1eMAhNAqy60exFhhZsp1OhYtpTy/6YOjkci+3cbxi2NamscgIiGC7Z3dm7aG+y+bu/di1gPFgeUtQkubpixEpBUUaD6f2QMtk3NiuF1IdpV8Zn59Pa/dwCkv2XZNtbj0uYbcLlB6DNY8RKPrMKvDqhIboaqYMgUmtwMlC11Pj0oyzBw1tJlT1MmTiEz/mnhocGTDBjZuXDrmZhARSHRt2tx/6BCbb8pS1LpKLytMl6YsROQqL1f9pu8yrZnamEHExQVJD3ERUTBE//Yqtu2Dqd4A4+ezanFpYosjQnEBiNJisHFRXIzaWlkbTvIZPh+mTbOJo4IUhZxO+//4mFnkOvTm+aKozGwzOjaMyOH90YNtccwyJCh4obvz448i/T1mq7i7ikuKVrZanlIZCwwQoBcVqubvMq1aqbCuUU05zLXSiwsh0NnDP3yZT55N9ltdT7pVi6Oacugapfi+J3X4/airQ16e1eOQ2Ibqavvc4ZGmqbm5NhecWMMVtb5Ga5pJZHJ/GjNHo8EN63koSGz6gxIREV16f+PQ6TazMxTpjoIlyxzlBekwD4MA1bwPDlbJucEcyKfayhSdWUXQsTa88Eu+3GeBLS6NqsXVVnIgn9IlO2Aatxv19aisTIubdEnSURTMmoXSUpvkX0jXKd9n90uTQS5dnTtTqawDm+wTTxRtOxLZdQTRaJzrOKJwV+/Fdb83hofNHQfklFcWLFlo/5IyBIBISxc5j22ImlaP4oLUXbpCYNMuvPgaB0OpTqKnURPV4gKaVp+5O9aEQHU1Jk5MjwylJNnk5WHePFv44AAA5HCoRUVk49gYMzMbSlmxo6WFTCWwYweDgx9vjHZfBuJ0TRERGJ0fbh46d9psUxbV7SlYuNhRFrB/SRnhdJot7zp6YMKHMgbYqdOyZjbZ/G1cEBEDr7+H321IfSfTz2xxNld0TcWyZnbqmRtvLytDY6OMt0sAoKEBM2bA/HagJCHcbq2yPI4odCohTVGbpih1U2MGKDNHktFxLrrjAIZvVaT9tjBzuLuv/c3fcjRqbseawZ7aev/8+SBbL9AJUD0eLa45KtVyzoyowY2TaO50SkHi/FoEUSiMF1/lLXshbXE3geZOp8ZJFLX1BT8O8vIwbRpqamS8PdvRNDQ3o6LCPqEacjnVqgo7u6+ZWeR7HStXkNn0BDMUJbxzR6TtDN+8f9pYICIjHL28adfAicNmM/eaz+9vadaL/LZeoDPrPp+zuCiOQ1Mv55zrpi/fhVwr7omFoO5evPAynziT6rdOl2pxuW58+S7kujPU4K4oqK/H9OnQTBdQlGQUJSVYtAh+89umk4nweOy7OGcmRahNk9T6qaaPJWH0XArt2GP0DNDYt5vf8JViReIudl585x1zLh8ijkbzZjT5ZjSSXRfoDAgivTDgKC+L4/CUynnsDH5+Oc2fiRQvza8iBI6fxgsvc3evlbY4Gwezaf5MfH45we6BhHgpL8fcuSiK5+ZXkiEIgeZmNDbaZIvaZwgRJZuWfmCAXA7n6jtJM+nSYmYhwkcPRz49eIvW5qYwQuHL23f1H94HorGH3IlZ9+YHFjZr/jzb1nwlQPXkqnHVr0ydnDOzYWDhbKy5F5pq2S0oEQmBzXvwM0ttcXZ2j2sqrbkXC2fbPZAQJ7m5mD0bjY32ibJKUo3fj5Ur7VDb9TpI14XLaa8xXYVZnd2gNkw1rcdEPDwQ2bXXONeVkE0EREQkhtrOdn78CRtRHvt4RpuyLHY31NrWcsiAFu/OyRTJeUzL50zH84+S3+q9GKO2uA3SFndT/D56/lGaMz0TFZ0I9fVYsEDWb89ShMDs2WhutksxuGugnByy5dZzZoZTdSxdSble0/dAJKLnz4W2b4MJ4b3ta4JDxuXNW/qPHSJFMeGJY1Y93sIVrYonx4YzGwEM0uO9MlMh54bBRFjWjL98iipKUvCGt0cQhUJ48TXeKm1xN6GiBH/5FC1rjt3R2nec8RAIoLkZDQ022XAsSSl+Pz73OdTU2DA8I9xuJT+f7DctcNTQptdp06aTYnI/EjNHQtGDByJHz5FIWJcnIiJFDBxru7xtuxEcNrVAJ6KClqU5EyrGmcVPBgwIXXP44tx6k8TpjDlWBYjz8/DEA/QX36Dy4lS72W+BENTdgx9aZIt7PA1scVReTH/xDXriAcrPQzRq22STeRQF06dj4UK5QM86FAXNzVi61J5fvfB5lYKA3cztbDA5FX3hYlFYArN39kRGX2/ww/cRMRKb2iAiDhuX3t8wfO6MWae95vUV33UHqardKmwQoLpczuLi+A5PmJzHao9cfUSjbDDnurFqIf76e/TEg8izXwzJQltc4FpbnI3Jy6UnHsRff49WLUSuGwZzNMrXfddpSXExli3D5MlygZ5dFBXhvvswYYINl+YAFL9fKy8VdpLzWFVXpb5KndlImsNsjyY2jOjxQ5H9J5Jxj0JCDB493b11sxE0WSROiMD8RTl15XZboBCg5OQ4y+PsrZeYSi6xigJETESqwm4XSoswawotasKk2lgZcDtCRELw5j342W/4mUfg0FM5Tqqr4mfW0N/8iHv6WNgv7HMVIWjGZEyuw+ET+HgXdh/k8x08OIxIlJiZmczWk7AFqoo5c7BkCY4cQXe31aORpARdx7JlWLIEublWD+XGkKpSrtdu98ikCn3ObLWmHkbUVHiVmTkcDH6wngdDSZFzIiNiXHjn3YIly50lJjqaE5EeKCy+Y+WJwz9lZpuEQ2LNV1RvrmvChPheIWGF2YiQ50F+HibVUNNUzJqK0kLYJ7R+M4iImV9fj8oSPLAqxbJKC2by4/fTC7/kcMQul9TN0DVqnITGSXz+Eu3+FLs+xeFTuNyL3gG7TT5jpqQEK1di2zZs3IhIxOrRSJJMzAL5xS+iutrOIRlSVePKzG49zBw11Aml2vzZpDpgRM3eufP5M+Gtn5ouITdmiGj4eHvnx+9X3P9lmMnrC93hn9d8of6dwcNnSLHFycaV5iuqL85MUMLknBm9A+gbxLmLvHkvyoowczItms2TJqR41WsaIgqF+N9e47JiapmV0t+REPT5FXzmAl57F/a5SbwhwRAfPomPd2LPIW7vwNDo6jxttRxXFuh33onjx3H2bDp/EskY8Hpx//1YsAA5OVYP5ZY4HYaiUDRq9TiA2F2FJtTGydrkGWCTyW9mAMEP1xs9fcmb3IjIiEQuvrOusHWlo6Bo7O9CzK6yioIli4eO/dI+cy8D8TVfiZEYOY9t5WcmANEoBUPousz7DvPv1mNeIx5cjcaJsHk8ubuHX3iZiwOxPm+pG6rTQY8/gHMXefNuCGGXq+paDIP3HcGr7/C2fejtB3DtVxlr/2PZ2MZLIIBVq7B7N15/HSZ7NEnSCVVFSwvuuw+FhVYP5TYoHg+cDgwOWT2Q0Y4rIt+nL11EmtP0DiAi49L54Oa9HAwTxBiz1HwFU8McOtHe8eF7lQ8+YmZ8rLg8/nnzL61/f+h4O6nWeykIICKn1xu3CiQy2H4tikLM6B/kdZ9g5wF+YBU9dCfb0A13lau2uL96mvyp7dAR8NGza9DRxSfO2M6g09vP//E2XnuXu3shBISw4f3GOCDClCm4914cPox9+2CPJZEkwRChrg5r1mDKFPsX9xV5ecLjMQaHLA8WMTMJUqfWatNnm16aAyAK79/Bg73C7x77rKFEwooRJbPLZebubduKV6x25BeMfXxsRHMbJvmb5w+3/dYmC3RSFOc47jiT2NSMCAApCi738b+9xsfP4Nk1KC+GTbJC12GpLQ6xanF/82Nb2eL43EX88GX+aDsMA4pt0ksJJicHS5fi0CFcvIgLF2TIPQPJz8cXv4jly23rgLsWtSAgvF6+2GH9hUhELqfzjqXkdMcTgmPWGufl/u91phLnTsMoi+s3KDRddZlrBELMisvjb57X9dGm4bMX7bBYIU1zxVWtPUYqepQKQcz8/hb0DfBffIMqS1PwnvFARAbz6++hogQPpt4WN8tetrgz5/E//4V3HhhdlFs9nGRSXo7Pfx5Hj+KNNzA4aPVoJAnF4cDKlXjoIZSUpEVaSCkpFvk+Buywg1WZXKnOWhDnwcxKYYlSZG661+LshA5mNr3rl4ijUd+MOXkzpo2c77BD1VfSVFdtbdyHp8jhGauUvuMAfvAL7u6xwWm7CXZooso2qBbX3cM/+DnvOAAh4v15pRFCoLERDz2Exkb7B2MlJlAUNDXhsccwaRLUVCxdxo/iz1e8XrI6hMnMpCvOlcuF2xPnDBBzVBmGyUeUo/E84qvgQcyK7ixYtkT3++xQJ0vRNFdtTdyHp27DBhEpApt24uW1CEdsrejXNFFN6Thj1eKara4WF47wy2uxaReUbNDyGDk5WLYMDz1k811MEhPEUuZPPolFi+zuZv9DSNcNy5eKzEptmTq7GUpG3+ASAfA3NXum1tuh5quqado4WgmkdOaK9T753Qbeugf2bRFK11aLS/WbB3xkdbU43roHv9vAjKzR8hixemH33INAwOqhSBJBcTG+8hV87nPw+aweijnI4bA40s7MAvrypUqgwIYF5BOOcDhL7rpTyXFZuzonQHfljCcllOqFCBH1D/Kv3kK/jXOUljZRxWdNVK1ofNI/iF+9hf5BW+TvU01dHb785XTxTEluhc+H++/Hww+jtDQtUubXonhzrUwNMLPByoRSrWk2OVxmq7qmJUS+mXNyp9WRMNE9PRk4/PnjOTz1cg5F0L7DvH0/23eBfmVh+vp6i5uoprwtOm/fz/sOs2K9x9MKYqnWRx/FggVwuawejSRe3G7ceSeefBL19bbb+jkGhD+fxlFLZJwwAGJH83ylqgaGYc+NSImFiFSPt/juu0lVrdQkIZxFRUTxi7IlaUIaCfH7Wyhs78KaFLPFvcZbUp4asKqJajiC97fQSMguJSYtwOVCayseewwzZkDXrR6NxDxOJ1pb8dRT6fsNKoVF5HBY9guMGqKiUJ3bRK7c7Nm3SULJb2zKnVFvZbydKKeqajwFbSyQcyIQ4cBRXOi0+7VCRN09eOGX1tjinniAFsxMaRL9QicfODr6BWUvXi/uvBNf+xomTkwXO7RkFF1HczO+9S0sWACn0+rRxIlWWU451gSHmBkC2vRp2uRpZL5Ce/pCgB4oKF5xh9AUqxSdhPA01NE44knWmHgFUVcPnzht92uFrrHFXU65Lc7vo2fXUF1V6qL9J05TVw/bqj+jNRQW4gtfwJo1qK1Nx2htlqJpmDsXzzyD5cvhNldRxFZoFWXkdlvyI2SDRSBPXzhXePKzZ2keQ2h63sxZnim1bEV1yJj12FldnU5WuCtQKMxt7bBz+jzGVVvci1bY4mor8cwayvdRStbo3NaOUDiLI+3XUlGBhx/GV76Cqiq5dS0NUFXMmoWnn8add8IbZ0Mqm0But7Aid87MJKBMqtWa5sXRPC3dYcPIKa8sWLRYOFS2woasaZoyvvSQNfMUEZjpYmd63P/F9tdZZYtrnoEn7odDT3qJA2Zc7IQ9ShfbACJMmIA1a/ClL6GiQiq6rdE0NDXh6afTcVvaDaGUZ/1jRVTI49KXzBe5/vSYmhMKMQvdmT93jru2mg0jxSF3AnS3m8Y3z1g2STFhcNj68mdjRFy1xVlSLW4l3bucki2zzDw4DJZafhUiNDTg8cfx8MNyjW5fdB1z5uDb38YXvpAxNQPI4+aU31YTkVJZ4liwFEhWe3JbQ8TRaG7DlPz5s4VuQYrN4fOJ8Zl1LJuhCAiGEDXS5qIZtcVZUS3O5aBVC5GTZGdP1KBgSMbZ/xAhMHkynnoKTzyRprueMhynE4sX48/+DPffnzFaDkAtCHBqbx8ZgKboKxaSNxPCG/FBzCTUwMIWZ3lJihfoDDhLisX4ikxbueBgTqeIjrW2OEWhZPdBSa+vI3UIgbo6fO1rePRRqej2IrYn7TvfwerVyEttV+MkoxQXUWp3VRAgygOOhcshsvgKJ2I2vFNm5s2aJrSUngcCnBUV4/RMWCnnabchylpbXLJJu68jdQiB2lp89at4/HG5e80uuFxYsQLf+Q7uuCPdvW9/jFpVSVoKLzNmAM7li6mgMMu9MwQIRS1etUpLeVMWz8R64UxbOU9HRm1xGyyxxUmsgwg1NVizBk88kUbtuTIWjwerVuE738Hy5RhHywrbotdNID115nZmFuX5WvMi0uNI6XEaYPIj5U6entc0jRRh/tB4YEAAemHhOA06clYyjSAKhfjF17iimBbMktu6sgYiVFXhK1+BpuHnP8eBAwiFrB5TVuL348478Y1vYMGC9GqVNnYUfyBlaR1mBrPeMk+prDQ9lzEzOLJ/1/CbawkYf3yvJxLpixqcoA02bBie+rqye76g+wpMHSg0R+nn7un+ZGd0YGj8wxgLiqqO0wcHKefxQUTdPfzDl7koQLWVVo9GkjKIUFmJhx+G242f/xw7dmB42OoxZRklJbj/fjz+OGbNSt+6b7eFhCBNQ2oWCwaLYq/e3EJun+nt5kQ80Dfy7luhtz8Z5yarGH3RSBdHjYTJOffuPeCdOtM/uxCGMfaPRkSehsm++dO71m8Fp8Lnr7lcyvh8cJDB9vj4Q1ucDLlnE0QoK8NDD+HZZ9HaKnuvpY5YvuOxx/Dss5gzJ4O1HAAEhMedAi1nZoahzZyhNjSQed1iwOi4GN66F0wc5QQ8DGYDiXoAFO7o69r0UWRowNRHIyLNnVt8x11KjiMF8XYC9HyfOu5LWsp5nGS2LU5yGwIB3HMPnnsOq1cjf1w9DSVjQlFGdww+9RSmTMG41zG2R4h8X2rkXOR71OY5Ir84JoDmiIRD2zZyZz/ZFQBdGzePXGg3O0eTongnT8mbM52TX5KTmJ1FRYp7vJkjKefxQ0TMVlWLk1iN14sVK/Dcc/jCF1BcLHcFJJFY0bdnn8Vjj6G2Nit8iEKoxcWU7D1jzGBDnVSvN802FYu+erjR3xv8YDNHU9gnyiREFGzv6tr8sREOmzvSMByBwsLWZYrHmWxFJyJnebk67lCflPNxIYRl1eIk1pOTg5YWPPusLBuXRHJysHgxnn8eDz+M8vJsOcmC1IryZFd1ZmaR69LmzxIFZeaX5szgyL4dRtvF1Ni/44SIDePS+vcj/b3mxklEQs1rbPROn5zskjJE5KysUMa9RyM7fhvJhP6gWpwky3A40NSEb34TTzyRHUHg1OL345578Gd/hvvuQ2FhFoVAFEVvqEUyK0fF1EmUlToWtcaRNQcTRyPBDz/mkSDZ+3th5uHTF7u2fGi2VBaz4SqrDrQsUNyO5NbYYta93vG0Ro0h5Xy8XGuL65a2uCxEVTFlCp58Ek8/jXnzMnXrVKohQmkpHn4Y3/seVq7MsKJvt4WI1IqK5AbbmUlXtcWzqagsHq0iih77NHLwJKJ2n/SIKDocvPT+R9GRYXOGOGYiyp83110/AZzEBTqBlESkkKScJwC6Yov7mbTFZSdCoLoaDz88WtgkI5p6WYmioKEBTzyB557DvHkZbmK/GYqS3HqrRFSY72xdQSTiyJozjODmLUZnd+yVkjLCxMHMg0faLu/eEuvmOdbDiJgNT83E/HmzhVNP0gKdAcXlVF2u8b+UlPPEIG1xEhQW4p578PzzuO8+lJRkUWQ4sTgcmD0bzzyDp57CpElZm78gRaGktl0SpC+erZRVxSPGJIyLZyO7P+XhkP21PGZwD13u6dy4ORoaMdWqjgBmFC5d6igvZcRRX25Mb6F7c/XcBBQ3zAKPaKoQgkJhfvE1Li+mFlktLjvJzUVrK/LzUVCA3/4Wp04hGrV6TGlFbi4WLsSjj2LVquxKlv8RpCgiN9fo6k7GizOzCHgcy+6AZr6xOjNUNbx3T/RUG4T5lb0VEJERNvr2fdp/+IBvxlyYcaoTG+6aBn/zrJGz541QJOG3L8Ss+/1afgJCenJ1nkiIIG1x2Y7TiaYmfOtb+MY3MGMGxtciKbsoLMR99+F738N996GoKC10InmQpqkFBckI9MWqmGvzZymVNXEtzcno7Qzv2sfdg/Zfmo9CRIKGz7Rf3r6ToxFzZ5WISJTcebfmz0vG5yUiR1GRXlA4/peScp5IYkl0aYvLdlQVDQ147DE89xwWL87IHiEJRgjU1OCrX8Xzz2PZMllrDwBpqlJakhS1ZBZeh6N1BXlyTeeDmSFE5NSJyP4DV8LYaQIRh6OXt28fbDtBQpj94K6KCYFFc0GU2Hj7aPOVoiLVn4BqVFLOEwxdUy1uJCgVPVuJ1YJ98EF897tYvRqBQJavNW+FpmH6dDz1FJ5+Gk1NWWp8+2N0XauuSvzLMrNhaLOnK3W1BPOhciIOjUT2fxo90wElneSDiEhR+o8c7z94kE2WpiciRXcUr/6c5nMnY2yqriek4n06fR/pQswW97v1+N16aYvLbnw+3HEHvvtdfPnLqKpKWY+sdCJWiuc738ETT6ChIWuNb38M6bpWXUmJ9l4xs8h16gtalMKSeKq6EhmdHeGtm9lIA0P7dRCRMRju/PijYFeH2ftjp0pkAAAcJUlEQVQYInJX1fiXNLNhJNDiHmtDp46vzflVpBUuKQhBwTC/+BsuL6aFs6UtLotxudDSgkAAxcX4j//AkSMIBq0ek23Iz8fy5Xj0USxdKkvf/zHC7WbzYeFbwcxRQ5tcr82cAQiQaTnnaCRy7Gj40KmErCZTDymiZ9f+wePHHYEiMjUtM6ue3MLW5V0fbo5cHkjUrQwDpGm6NzHZpbT8StICQbjcixd+ycdOWz0UibVoGqZOxde/jm9/GwsWyFQ6ABChvBxf+tJoMkJq+Y1gIRIbrmBm8jjUeU2itMqUu/uzFxgaDH38IQ+F025pHoOIIn3DHR+ujw4OmDbEQeROnJg/f3YCa74SoLndjnx/Ql5NynmyiCXRT5zBCy9zV48MuWc3sUbpMfW66y4UFGR1Kl1VMWkSnnwSzz2HBQtkHb2bIXRNjLvL1lWYGcxqRZmjeT6RAJmelJg52nE+tO1Ammp5DCLq/mTH8Pn2OGyADn9hwcKFWsCTqJAJMSset6OoKCGvJuU8icQUfcteaYuTAAD8ftx5Z7an0p1OzJ2LZ5/FN76BqVOhm9/3nDWQ7hBeb8KUk0EOVZ07XamZCI4rA2gYoU/e596BNBZzAEDkcn/H+rc5GjF3GDGYvI0zvNOmcYJqvhKRlp/vrK4c/0tBynmyISIw1m7A69IWJwGQk4MFC/Dtb+PrX8e0aVm3Kz3WVfa738Ujj2TvDc2YoRyXUlCQEDccMzOYCvKdrUuJ4szHc19v6JOdiJhvpWoniIijRtcn24Jdl8weymy4Ssr9LfNVr3v8C/TYLZWW69ELE7DpHFLOU4AQFAzjZ7/hzbshm6hKRlu2fP3rePZZtLRkSyqdCMXFeOAB/Omf4p57sj3dMDaUXI9WWpyQyDYzkyLUpslK/RQA8Z380K5NxpkOO3dDHSPMHDzfeemj9bF/jP1AAtjgwIIWT0NtrBrP+Aej6Y5EJS+knKcCaYuT/AFEqKjAl76E55/HnXdmvrYJgdpaPPoovvMdLFkiq8SMEeHxKBXliZnrCeTJca6+C/F17mLm0Eho41YeHKb0X5MQUXR4pOuTbaGeLlMl3AGQYbiKK/wtcxW3c5xyTgADmith9ggp56lA2uIkN+BqKv1LX0JlZcZGnnUdM2fiW9/Ct76FmTOzLr8wHhRF8eUlwHXFTCB1ziSlbhKR+Tk/VgnuyP7okVMcNdLaBxeDiNjA0PFTXTs2kxDmVJkIzEXLVrkqSmjcReJIVR3+hDVglHKeImKKvlXa4iTXcjWV/uSTmDw5A31hOTlYtAjPP49HH0VtbZxLw2xGUaPjTtExQE7NuXKVyIkrs0PEQGj7TqPjEhFlRiSJiEJdvZc37YgM9Zu/QWFHYUnB0hZSFR7Hl8OAouvO4sTY2iHlPJUQEQNrN8hqcZJruLor/emnMWdORu3a8vmwejW++13cfz9KSpCehUeshXSdNW2c+slRQ501UZ04Oc7aL0TGuZORPZ/ySCQztBwY9fX3HTjQd2AvFMVkCIRIiKIVdzmK/eZq0fzREITT6ayoiPsVrkP+wFKKAIXCeFHa4iTXQoSqKqxZg//8n7F6NXwJC75ZSVkZHnkEf/7nmfOJrEDJcQt3zngklJnJqeqLlwh/XPZpZhCFPz0YOXESQmRApD0GEZEQI+c6Lu/cHR0ZNJtBB8FZWFx0RysI44m3Kzkud11d3Idfh5Tz1EKgK7a449IWJ7kWvx+rV+P55/HggygtTeO1rBCor8eTT+KZZzB3LlwuqweUxlCeR3hzx7NXjaNRbUqN1thIcbQ2B0DC6OsK795rdA9ljJbHICKOcvfWLUNn2szGLQgkHM7AkuWO0kB8ch7bpaboulZYEMfhNyRtp4y05aot7ofSFie5Do8HCxfiuefSONOsqpg5E888g69/HVOmZKAbILUoPp+Snx+3jjIzORRt/nylojquqq5gQZHTZ8K7d5Mw337N9pAiho6f6d2z1wiZ7qRAgLuiqqB1McaxY03THQmsfi/l3AJktTjJTXE4MGMGnnoK3/wmGhvTzAfudGLRInznO1izBjU1aXk7YjOUQEApLIxTzpk5aijVZdrsWaRqzAazwUZ09BGNjD4i4SuPEEdCHL7yCAU5FOSBnuie3ca5bohM03LEeqyFjEsbPwh2d3JMls2gunMDCxY4ywJx7D6InU1HXuKq/lnYUS3LRYyI/v/27jU4qjLNA/j/Oadv6XSSTufWSTohAYJJuAWEcBMICAEFNEiQm4iKo4zj7uzWVM3O1NbWTu1W7e63rZ2trZmxrBlxlNFZZ7zhBUFQF0FRQFAuI+GuBEjItS/pTvd59kOHiyOBXPr09fl9ROnzck73+Z/3Pe/7vGDeugsuJxoXsRI3P5UUvy5xQVUxahQeeggOBzZvxv798Hpj3aYBSE9HXR02bkRdnWypEilKhk3NcQy+vHofUqA4ctjnD+z7GMEgmNEbQKgXAAcCHAqBGYEANI1ZQ8APgEMh7g0QsxYMIRRkvz94+GswKG7uUZFFCnUfPtHy4Qe28vLB/2XqdXemFRb2fNs6lE62ophzHBEc8+g3zhn6butJDOZIbv2XcIgo0MvPv8au+NhENXw5hnzjGIzkvC9EEhEKC7F8OTIy8Nxz2L0b3d2xbtMtZWWhvh4bN2LWrFSpcxc1BuPQV0OREtx/pPuL49cf1K9/0g2f+Z2P/+6xuG823BAbkAg0f+/pX/12KCvyAYA5pNGQikaQqqYXu6IR50a9++0EtxfBIEyR3AAwwSgKtXfyr/7A+bk0ujTGjQkG4fbqHrVp5uS+M0SUw4HFi2GzwWbDjh1ob491g/qRk4Nly/Doo5gyJakW2sUHsphDRMw86N9NeIyeGcFB7jXSzyclpb5/WkhjDGVuwXc+ZLB/S1WtI8sieEPs93nEaND3+hG4rRMen64HSQDXqsW1xXpanMeHtk7oXcHRIlOjBiUzE3V1ePppNDSgoCAeH4UKC7F6NZ56CrW1kuV6MNjSMeyl5yIOkapaKyoi+KjUb5ybTcNaTndbRNTWwc2D3dIm6VybFvdcrKfFNbegrYN1fQxn5gxbUk6p0ZPVimnT8NRTWL0aJSVxtIAtvFx+/Xo88QQmToTFEusGJSdyZCs2W1TeggndXbuMqtGYP36cOTcngh/e75C6xQxFGW5B2lsggtuLYycx4Y7YvzaOrXDh31hPi+NjJ+H26tv9UxSyZ2KIr6hSmdmMmhpYrcjMxMsv49Sp4Q+fDld4cfm6dVi9OlHX1CWI9LmzQ5dbu//8htZyCcEQQ+dpTUJPBKhGY2aJq2ztmty7ZhkiOtGk3x+h1cKKglBIr28OEYU0bd9hum8+0lL+sV6J9bQ4Xw8+PQSN2aBj548VBbl2KHE4Yhz/DAZUVuKRR2Cz4YUXcPw4entj1hhFQXU1HnkEK1Yk8+Yx8YGs1sx1q9IX1HVsftH/6WfB5mYVNPTXvCJGCCCi9BJX0d3zS1auMOXmDm0C3S30G+cZ6WQ0cCg4nJK0t6EQHTnBR5owZRzkcVOhvmlxBbk0KtrT4vhIEx9t0jlomYwG5OfE0WhxglEUlJdj3TpYLHjuOXz1VWwSXVEwdiwefxwrViR29brEQQaDobg45x9+4j/8pftPr/v3H6ArbaFYt0oMRLhzZgDMTqdz5nTXA8vTK+/Q6Z1mv3GeboXNCp9fx5glQpcHW3fR+DEwywwpwrVqcf+4CQ579J5v/AG8uZO6PKzqeWdmgs2K/JwkniSrPyIUF2PlShgM+N3vcPgwAoGoNkBRUFmJH/ygL8vlWkYRqaplUo25stL38R7Pezt8ez5BoFdeqcczBlTAZLPlz5ldVL/AMWtmBGvAfZ/6i1/84qb/QSHs+hRtHXouPScCcLEF5S6UuaBHBz3Qi/d24/IVxE+dllsgIiJ8exH+XkyqhkHnxQVX8e7PectWhEL6niUCuZxoWEBpFkmB4cnIQGkpbDY0N6O1FaFo9dNUFVVVeOwxPPigZHmskNFgHFlumTTROLI81N4RutyaTMWf3Kz5wJz4S+OYmYgMBkPh9OmjNz1RuvIB25hITmK/qX575yYjip34+qy+XxUi8vh482sYPQIup8zwCG+iylt3ocSJFdGYFsfnm7H5VXh9+j/xEIqdyLBJCkRCQQEaGmAw4NlnceAAenp0P6KqorISGzeisVGyPObU3FzbvYstEyd4d+/tfumP2qVLWlBG32PvWoapJpN9RMnIRzbYJ082R25H81vrt3dOhPPNdOAodJ1HSQQitHagtR13jiWLGZE9VmL1zsOIKBjCX06j3EUlhdDzEYfbu/DL3/P+o1AUvR+HGUQLZtCkKj0PklLS01FaiqwsXLqEy5f1nese7pc//jhWroQrknWsxHAomRmmO8akzb0LQKilVfN6E/3CJHrvXAFUgyGjsHDU2jVj/vbprIkTDBnRK5J4q+UlFWUwGjgQ0PfEEpEC/ugz2Kz8wzVkz5Q+Oiga0+K4vQu/2sIffQaFdP/xMJPJyBVlqX5lIywnB0uXwmCAwYBPPtGrtLuqoroaGzdixQoUF0uWxxUyGozFxdl/8yProoWdL7wc+OIQWls1QJPbaHQRQIC1sLBg1ozSBxvTysoiPnH9tvrtnQMwKPjwM3j03/0hnCUnzuLbSxhTRlkZiNRXMRF757g6aNHWieYWTBkHqwWR/m3yuWb89+/5/b3hw+l+coiQn4M191JGut6HSjFpaSgpgcOBS5dw8WLk++jhNWmPP47GRsny+KUohrw86+xZRldxqLc3eLlVDSbkLLkE7Z0rgCUrq3DhgorHNpSsWW10OHSd8tafW/XO8xyoGIGLLRSFR71wKZUP9uHCZd7QQDMmsdmUSJcz4ohIUXjfYWx+lZ9aG34NERn+AO85iM2v8omz0eiXAwAYUCpGcJ5D/0OlILsd9fVgRk8P9u+P5Ht0RcGYMX3ry4uKJMvjHJmM1vlzzZMmej/e633rndCBQ2BZoK6jvkVoRoNzzpzCBXfnzp2txHRH41vFucGAmkrs3g/WdFx9fg0RKcDXp/nffs0zJ2PpPIwdjTRLBA7MnJAD+DdUi+PGRREYYPD18JEmvLmT9x6ExwdFidYTMBMpqKmU0mG6CW9o5vUiFMLBg/D7I/CZRCgvx/r1aGyULE8garY9Y+k9aRMn+D7f37Xlj6Hz5zmkJeD9L37x1aF1RVFyxlaXrmx01E415eXGul232++8poqyMrijKzqNARFUlXx+3v4xPvmCx47G1ImoHoXCPKRbh7LJW3iH38Qat7nR1U1UUZTP0yYO5RN6g/B40dyCoyex7xAfbUK3B4oCVY3iOSFkZXBNVaJehcRgt2PZMgSD+M1vIrAenQglJVi3DqtWxVeheDEwhpLijOJCy6Qaz7btnte3BtvaSNMScfg9roSDXAnvbep0lq1cUVC/wJSfHycRc5uq7P4A/um/8MkXiP7UCmbWNCgK0tPgsCMni9Ktg+4hBEM4cgLdHn13FtEVM5jZmUejSwf9z2eGx4srndzWAY8P4fMZ9VPBgDK9Bv/6YykWpL+WFrzyCp55BkeODKtmnNOJhx7Cxo2oqJAargmNe3sDTae6X/pf36efcVsb4nuV+kUteIU1jeP0jk0AA7ZCZ+Gcu0oeWmfJyyfdtxIfhNtvsvLG+/jPzQgGOSanN9y6cKQN4VtIIEVJhmFCTYM2pO1w6Gp1GiA254EZBgP9/Qbcd3cMjp6KLl7Eli149lmcODHEmXEOB1auxKZNGDdOXpAkBw6FfB/vdb/5tv/AQep2h+J1H5f4jPPwuVIBc25OXm1taeMDGePHxWSy263d/rc6dQKcufztpSg05iZuyKE4urrRpyhQEvMMEMGZy1MnJGTjE5LTiZUr4fVi82acPj3omnE2GxYtwsMPo6pKsjxpkKpa59yVNvVO93vve3d+ENr3uRoKyTS5ASLAZDYXzJ1TOL8uZ+5cxWSMdYtu7lYL1cJsVlxsxdGTFH4LHZVWiWTBTIqyeDbmT4+rp+1kl5kJlwt+P06fhtuNgY/rWCyYNw9PPonaWqSl6dlEEQNkNJorx1hqJhhdxcErV0JX2mLdor8WVwvV+t6UE+VPnVKx8dERa1ZnjK2O/mrygbt9nBMh00b/9zn3BGJ/fkWCIbJn4snVJEvUoooIdjuKitDVhTNnBlpexmBAbS02bUJdHSK6DbOIK0qGzVxdZampUXNzes+c456e8ANfPAy/x0+cM6CqalZpScUPHi9/+CH7nXcqcb+T9+3jHIA9A+ea0XRWOuhiMJhByrxpWDYvDl8zJTsiOBzIz0drK86du/1i9PBWaU88gXvuQXZ2VJooYknNtpvHVqXNnM6B3tDly9zTEw+/0ZjHOQMKoChKen5e+f0NlT/9iWPqFGNWVkwaM1gDinNFgT2Tdh9gv3TQxcARZWbgqbVUmBfrlqQmRUFeHrKzceECLly4zUR3lwsbNqCxEU6nPLKnCFJV1eFImzHNWFXJbo/W0an4/bGd9x7DOL82382Sn180e+bYn/20oH6h0Z6VQH2RgU51qRqFuql4fSdIOuhiIJiZqG4qqkbFuiWpzGTCjBno6EBXF/bt67e8jMOBhgY88ICUi0lBZDRaa6ek1Uxwv7vdu3OX9vlBJRBIwd3ZDIDRZsutnepatjR7+rS4ne92CwONc4OK5Qvp08N8qZXi4yWLiGcMImculi8kQ/xOHEkN6emor4fbDbcbX355k6VrVivuvRfr18sS81RGJlPGfUusM6d7duz07NgZPPQlEaXCjZ4BYlYVJX/atKJ7FuXOnmVIkKH17xvQYHtYdiYCvXTwGJiT/hKLYSJFwdqlNHeqdPbigNmMoiIEAjh5Ep2d35nobjBgxgw8+SSmTUNMy02LeKBYreZxY83jxxkK8nu/vQC3p6/oTLR+xVEbbL++MTmQPaZizA+fLFu9yj5lsmKJ9/lutzCIdaVEuHcuf3IIh48TWJP7tLg5ZpAyfgwvqZPvSNzIz0djI5qb8dJLaGnpS3QiVFRg7VpMny7L0sQ1pvIyo6s4bfYs9yuveba/r3V2EZiTa1SWAEVV03JzylYsd9bXW1zJsFvgIHrnANIslJ9Dew+F58Ql08UVkcLhGXB/t4FGlcS6LeJGWVnIy8PFizh3ru8lekEB1q/HypUy/U38FVJVNTvbcudkS+2UUHu71tmJHn8UviJ6987DE9cJbM3Lc82fX/3zn+bNmW3Mzk6O7//g4hxAQS4Cfnx5goZUclQkPVJVWn0PFs+hhNpiPgUoCnJzkZaGkyfR3AyTCUuW4NFH5ZW56A8ZDIb8POvc2YYSl+b2aO3tSm9Q1xu/fnEe7n0aAbPdnj99WtXTP3I92GjKzY3nsjCDdfua7d/X6ca//xp7DkKG3MV3MIOUmZP455soS8qQxKdgEG43/H4QwWqF1Sq7pYmB0No7PO/t8OzY5T90mHTbx0W/mu0KoBiNebVTixfV586rU61J+HZpKHEO4NR5/PMv+ewFeYkurmIGKSOK+F9+TOWuWDdGCKGDwOkzvt173G+8HTpzlinyL1x1inMCcqqrXQ/cnztjhtlZEMFPjitDjHMAew/iP57h9i5JdNGX5dmZ/LMnaMakWDdGCKEb1rTek6c87273bH1H6+gYcoLcVKTi/NpzhqKqtvy8EWtW5c6caS0vi0AT49jQ45wZb+7i/3kRvh5I8deUxgyiNAt+tA7L5sW81rIQQnfc0xM4c7b7+S2+fZ9rXV2RGn6PVJwTACKL3V68qN71QENaaYliTLyyMIM19DgHEAzh5bfwu1cRCLAkeopiBpHJRI8ux6olkKIxQqQO9vX0HDjY+eJLvX85Qd3dw99GPSJxrgKm7OycSZPK167KGDeWUiDIw4YV5wD8Abz4Bm95iyTRU9HVLF+7hNfdR2ZTrNsjhIg6ravb8977nm3b/V8dUUOh4RSIHWacK4AhzZIzebJrcX3uwgWp0CO/0XDjHOFEfxNbtiIQkLnuqYQZpJhMWLsU65ZBslyIVBb85hvPro88b28LNp1kYGiBPJw4V4lyJtUU1i8oWLDAmG0f/METXgTiHIA/gFe24fnX2NcjM+NSAzNISbPwww3UuEiyXAgBAP5jx32797hfe0NrucKDH3kfVJyHPz78mjyrpKRkxfK82XeljSgdWsuTQGTiHEAwhLc/5N++Qm2dAJKsIKC4Ud+PyJGFxxr53rmyyYoQ4jr2+wMnmtyvvund9aHmdg/q7w4wzq+lCymKJSurdOmSwmVLrSNKyDCIsuXJJ2JxDoAZe7/gX/8BZ74lQF6lJ6O+a0plxbxpDWbUyDx2IcRNaF6v//BXXS+8FDh6DG63NrAe3kDiPFyolYE0e1Ze7dTyh9dby8sSeuuUSIlknIedOo9nXuZPDpGmyav05MIMUhQF0yfyE6topJRkF0LcArPW4/ds2+59+13/0ePhbdRvHeoDiXMFMKanOyZNLG243zH7LiW1e+Q3inycA+hy45Vt/Op2dHZLNz0pXO2UZ2Xw8oVoXESZUsNVCDEwoZZW99vv+nZ+6D92XAG0/v/PW8R5uFOuqmrOnZMK581zLrlHTU/XtdkJR5c4B6Bp2H8Ez7+Ow8eZmeRtesLqe1NOxBPuwMMNdOdYKfIthBi0wNdN3g8+cm99R2tu5n46eDeN8/A9SGG233GHa8nivHl1luLiaLU6kegV52HtnXjrQ7yxExdbwn8goZ5Ars8bdebhvvlYMhfZWbFulBAiYXFv0H/suHfbds872zSPF8z4biTcGOfhP2dAIbLmOEob7i9YuCB91EgZ6+2PvnEe1nQOr+3gj/ZRhztcCVBCPc5dDXKC3YY5tdywgEan7uoPIUQkscfrP3a868WX/QcOaj7fjf8pHOchTSNFCc93s2RlFc6aWbphvbXEpZjNsWpzQohGnAMIhnCsibd+gL1foKMrHOQS6nHoeo/cnskzarC0DlWjZSmaECLCNJ/P98FH3X96rffrJurpCc+Su3S1d64SGTMzc6qryx95OHP8WJm4PhBRivOwUAhfn8H7e7HnAF9oIY2lsx4nrnfHFUJRHs+cTHfPwJgyqBLkQgjdhLq6PH9+3fvRbv+RYwrzBS3YzppiMmWPH+dacm/+wrtVqzXWbUwYUY3zay5cxmdf8p4DdOwUd3QBRFdzHRLt0XK9EgMIYLZnomokzZzMU8dTUX6MGyeESB29Z8563nnPt+vD8yebuLqysH5hwcK7zU5nrNuVYGIT52H+AM5e4EPH6IvjfOIs2joQ6CVcG4mPzIZ74vuun2STkR12VIxATSVNrOIRRbKNihAiFjTN/9VRb3OzqWxE+h1jYt2ahBTLOL+mN4jWdpz+hpvO0qnz/M1FtHXC40VvkIIh6axHChtUMho43QpHFlxOjCyh0SO43EW52TBKJQYhhEhkcRHnNwqG4PbgSicuX+HLV9DSho5uuD3w+eH3E0uXfTAIZDZzmhm2dNgzkOdAfg7ycygnC7Z02ZtcCCGSR9zFuRBCCCEGS+p7CSGEEAlP4lwIIYRIeBLnQgghRMKTOBdCCCESnsS5EEIIkfAkzoUQQoiEJ3EuhBBCJDyJcyGEECLhSZwLIYQQCU/iXAghhEh4EudCCCFEwvt/0R3Hc3/OtXoAAAAASUVORK5CYII="; +const base64string = "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"; -// exports.onNavigatingTo = onNavigatingTo; diff --git a/app/ns-framework-modules-category/image-source/save-image/save-image-page.js b/app/ns-framework-modules-category/image-source/save-image/save-image-page.js index 86ecb07..c158657 100644 --- a/app/ns-framework-modules-category/image-source/save-image/save-image-page.js +++ b/app/ns-framework-modules-category/image-source/save-image/save-image-page.js @@ -1,29 +1,26 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const imageSourceModule = require("tns-core-modules/image-source"); -const fileSystemModule = require("tns-core-modules/file-system"); -const imageAssetModule = require("tns-core-modules/image-asset"); +import { ImageAsset, ImageSource, Observable, knownFolders, path } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); vm.set("fps", "0"); - const folder = fileSystemModule.knownFolders.currentApp(); - const path = fileSystemModule.path.join(folder.path, "images/logo.png"); - vm.set("imagePath", path); + const folder = knownFolders.currentApp(); + const filePath = path.join(folder.path, "images/logo.png"); + vm.set("imagePath", filePath); page.bindingContext = vm; } -function makeCopyFromFile(args) { +export function makeCopyFromFile(args) { const page = args.object.page; const vm = page.bindingContext; - const folder = fileSystemModule.knownFolders.currentApp(); - const imagePath = fileSystemModule.path.join(folder.path, "images/logo.png"); + const folder = knownFolders.currentApp(); + const imagePath = path.join(folder.path, "images/logo.png"); // >> image-source-save-from-file - const img = imageSourceModule.fromFile(imagePath); - const folderDest = fileSystemModule.knownFolders.documents(); - const pathDest = fileSystemModule.path.join(folderDest.path, "test.png"); + const img = ImageSource.fromFileSync(imagePath); + const folderDest = knownFolders.documents(); + const pathDest = path.join(folderDest.path, "test.png"); const saved = img.saveToFile(pathDest, "png"); if (saved) { console.log("Image saved successfully!"); @@ -34,29 +31,28 @@ function makeCopyFromFile(args) { // << image-source-save-from-file } -function makeCopyFromAsset(args) { +export function makeCopyFromAsset(args) { const page = args.object.page; const vm = page.bindingContext; - const folder = fileSystemModule.knownFolders.currentApp(); - const pathImage = fileSystemModule.path.join(folder.path, "images/logo.png"); - const imageAsset = new imageAssetModule.ImageAsset(pathImage); + const folder = knownFolders.currentApp(); + const pathImage = path.join(folder.path, "images/logo.png"); + const imageAsset = new ImageAsset(pathImage); imageAsset.options = { width: 100, height: 100, keepAspectRatio: true }; // >> image-source-save-from-asset - const source = new imageSourceModule.ImageSource(); - source.fromAsset(imageAsset) + ImageSource.fromAsset(imageAsset) .then((imageSource) => { - const folder = fileSystemModule.knownFolders.documents().path; + const folder = knownFolders.documents().path; const fileName = "test.png"; - const path = fileSystemModule.path.join(folder, fileName); - const saved = imageSource.saveToFile(path, "png"); + const filePath = path.join(folder, fileName); + const saved = imageSource.saveToFile(filePath, "png"); if (saved) { console.log("Image saved successfully!"); // >> (hide) - vm.set("imageAssetCopyPath", path); + vm.set("imageAssetCopyPath", filePath); // << (hide) } }) @@ -67,20 +63,14 @@ function makeCopyFromAsset(args) { // << image-source-save-from-asset } -function makeBase64String(args) { +export function makeBase64String(args) { const page = args.object.page; const vm = page.bindingContext; // >> image-source-create-base64 - const folder = fileSystemModule.knownFolders.currentApp(); - const path = fileSystemModule.path.join(folder.path, "images/logo.png"); - const img = imageSourceModule.fromFile(path); + const folder = knownFolders.currentApp(); + const filePath = path.join(folder.path, "images/logo.png"); + const img = ImageSource.fromFileSync(filePath); const base64String = img.toBase64String("png"); // << image-source-create-base64 vm.set("base64String", base64String); } - - -exports.onNavigatingTo = onNavigatingTo; -exports.makeCopyFromFile = makeCopyFromFile; -exports.makeCopyFromAsset = makeCopyFromAsset; -exports.makeBase64String = makeBase64String; diff --git a/app/ns-framework-modules-category/image-source/save-image/save-image-ts-page.ts b/app/ns-framework-modules-category/image-source/save-image/save-image-ts-page.ts index 5811706..e699615 100644 --- a/app/ns-framework-modules-category/image-source/save-image/save-image-ts-page.ts +++ b/app/ns-framework-modules-category/image-source/save-image/save-image-ts-page.ts @@ -1,8 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { ImageSource, fromFile } from "tns-core-modules/image-source"; -import { path, knownFolders, Folder } from "tns-core-modules/file-system"; -import { ImageAsset } from "tns-core-modules/image-asset"; -import { Page } from "tns-core-modules/ui/page"; +import { Folder, ImageAsset, ImageSource, knownFolders, Observable, Page, path } from "@nativescript/core"; export function onNavigatingTo(args) { const page: Page = args.object; @@ -22,7 +18,7 @@ export function makeCopyFromFile(args) { const folder: Folder = knownFolders.currentApp(); const imagePath = path.join(folder.path, "images/logo.png"); // >> image-source-save-from-file-ts - const img: ImageSource = fromFile(imagePath); + const img: ImageSource = ImageSource.fromFileSync(imagePath); const folderDest = knownFolders.documents(); const pathDest = path.join(folderDest.path, "test.png"); const saved: boolean = img.saveToFile(pathDest, "png"); @@ -74,7 +70,7 @@ export function makeBase64String(args) { // >> image-source-create-base64-ts const folder: Folder = knownFolders.currentApp(); const filePath: string = path.join(folder.path, "images/logo.png"); - const img: ImageSource = fromFile(filePath); + const img: ImageSource = ImageSource.fromFileSync(filePath); const base64String = img.toBase64String("png"); // << image-source-create-base64-ts vm.set("base64String", base64String); diff --git a/app/ns-framework-modules-category/observable-array/basics/basics-page.js b/app/ns-framework-modules-category/observable-array/basics/basics-page.js index 731407a..f116146 100644 --- a/app/ns-framework-modules-category/observable-array/basics/basics-page.js +++ b/app/ns-framework-modules-category/observable-array/basics/basics-page.js @@ -1,8 +1,8 @@ // >> observable-array-require -const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray; +import { ObservableArray } from "@nativescript/core"; // << observable-array-require -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; // >> observable-array-creation @@ -60,4 +60,4 @@ function onNavigatingTo(args) { page.bindingContext = { items: myObservableArray }; } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/observable-array/basics/basics-ts-page.ts b/app/ns-framework-modules-category/observable-array/basics/basics-ts-page.ts index 6d896ba..8afc6c9 100644 --- a/app/ns-framework-modules-category/observable-array/basics/basics-ts-page.ts +++ b/app/ns-framework-modules-category/observable-array/basics/basics-ts-page.ts @@ -1,19 +1,18 @@ // >> observable-array-require-ts -import { ObservableArray, ChangedData } from "tns-core-modules/data/observable-array"; +import { ObservableArray, ChangedData } from "@nativescript/core"; // << observable-array-require-ts export function onNavigatingTo(data) { const page = data.object; // >> observable-array-creation-ts - // Create ObservableArray with lenght + // Create ObservableArray with length let myObservableArray = new ObservableArray(10); // Create ObservableArray from array. const arr = [0, 1, 1, 2, 3, 5, 8, 13, 21, 34]; myObservableArray = new ObservableArray(arr); // Create ObservableArray from arguments. - myObservableArray = new ObservableArray(1, 2, 3, 5, 8, 13, 21, 33, 55, 89); // << observable-array-creation-ts // >> observable-array-item-index-ts @@ -23,7 +22,7 @@ export function onNavigatingTo(data) { // << observable-array-item-index-ts // >> observable-array-set-item-ts - myObservableArray.on(ObservableArray.changeEvent, (args: any) => { + myObservableArray.on(ObservableArray.changeEvent, (args: ChangedData) => { console.log(args.index); // Index of the changed item (in this case 7). console.log(args.action); // Action (In this case "update") console.log(args.addedCount); // Number of added items (In this case 1). @@ -48,7 +47,7 @@ export function onNavigatingTo(data) { myObservableArray.shift(); // << observable-array-shift-ts - const myArray = new ObservableArray(myObservableArray); + const myArray = new ObservableArray(arr); // >> observable-array-sort-ts myArray.sort(); // << observable-array-sort-ts diff --git a/app/ns-framework-modules-category/observable-array/observable-array-page.js b/app/ns-framework-modules-category/observable-array/observable-array-page.js index e7ee1d5..d68c597 100644 --- a/app/ns-framework-modules-category/observable-array/observable-array-page.js +++ b/app/ns-framework-modules-category/observable-array/observable-array-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Basics", "ns-framework-modules-category/observable-array/basics/basics-page") + new Link("Basics", "ns-framework-modules-category/observable-array/basics/basics-page") ]; const navigationLinksTsc = [ - new link("Basics", "ns-framework-modules-category/observable-array/basics/basics-ts-page") + new Link("Basics", "ns-framework-modules-category/observable-array/basics/basics-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/observable/basics/basics-page.js b/app/ns-framework-modules-category/observable/basics/basics-page.js index e8a759d..e245fd1 100644 --- a/app/ns-framework-modules-category/observable/basics/basics-page.js +++ b/app/ns-framework-modules-category/observable/basics/basics-page.js @@ -1,10 +1,8 @@ // >> observable-basics-imports -const Observable = require("tns-core-modules/data/observable").Observable; -const fromObject = require("tns-core-modules/data/observable").fromObject; -const fromObjectRecursive = require("tns-core-modules/data/observable").fromObjectRecursive; +import { Observable, fromObject, fromObjectRecursive } from "@nativescript/core"; // << observable-basics-imports -function onNavigatedTo(args) { +export function onNavigatedTo(args) { console.log("onLoaded BASICS"); // >> observable-class // creating an Observable and setting title propertu with a string value @@ -70,7 +68,6 @@ function onNavigatedTo(args) { }); // << property-change-event } -exports.onNavigatedTo = onNavigatedTo; // dummy funciton for snippet demonstrationg function removeListener() { diff --git a/app/ns-framework-modules-category/observable/basics/basics-ts-page.ts b/app/ns-framework-modules-category/observable/basics/basics-ts-page.ts index b98cde0..dc31432 100644 --- a/app/ns-framework-modules-category/observable/basics/basics-ts-page.ts +++ b/app/ns-framework-modules-category/observable/basics/basics-ts-page.ts @@ -1,6 +1,6 @@ -import { NavigatedData, Page } from "tns-core-modules/ui/page"; +import { NavigatedData, Page } from "@nativescript/core"; // >> observable-basics-imports-ts -import { fromObject, fromObjectRecursive, Observable, PropertyChangeData } from "tns-core-modules/data/observable"; +import { fromObject, fromObjectRecursive, Observable, PropertyChangeData } from "@nativescript/core"; // << observable-basics-imports-ts export function onNavigatedTo(data: NavigatedData) { diff --git a/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-model.js b/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-model.js index e24e0c9..39264fc 100644 --- a/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-model.js +++ b/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-model.js @@ -1,5 +1,5 @@ // >> mvvm-view-model -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; function getMessage(counter) { if (counter <= 0) { @@ -9,7 +9,7 @@ function getMessage(counter) { } } -function createViewModel() { +export function createViewModel() { const viewModel = new Observable(); viewModel.set("counter", 42); @@ -21,5 +21,4 @@ function createViewModel() { return viewModel; } -exports.createViewModel = createViewModel; // << mvvm-view-model diff --git a/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-ts-model.ts b/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-ts-model.ts index c59cbbd..7cfc771 100644 --- a/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-ts-model.ts +++ b/app/ns-framework-modules-category/observable/mvvm-pattern/main-view-ts-model.ts @@ -1,5 +1,5 @@ // >> mvvm-view-model-ts -import { Observable } from "tns-core-modules/data/observable"; +import { Observable } from "@nativescript/core"; export class HelloWorldModel extends Observable { diff --git a/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-page.js b/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-page.js index 7288781..d4c79f8 100644 --- a/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-page.js +++ b/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-page.js @@ -2,12 +2,12 @@ // >> mvvm-code-behind const createViewModel = require("./main-view-model").createViewModel; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; // using the view model as binding context for the current page const mainViewModel = createViewModel(); page.bindingContext = mainViewModel; } -exports.onNavigatingTo = onNavigatingTo; + // << mvvm-code-behind diff --git a/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-ts-page.ts b/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-ts-page.ts index 38ffdca..b989616 100644 --- a/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-ts-page.ts +++ b/app/ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-ts-page.ts @@ -1,8 +1,6 @@ - // >> mvvm-code-behind-ts import { HelloWorldModel } from "./main-view-ts-model"; -import { EventData } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { EventData, Page } from "@nativescript/core"; export function onNavigatingTo(args: EventData) { const page = args.object; diff --git a/app/ns-framework-modules-category/observable/observable-page.js b/app/ns-framework-modules-category/observable/observable-page.js index 47f1833..90af9b2 100644 --- a/app/ns-framework-modules-category/observable/observable-page.js +++ b/app/ns-framework-modules-category/observable/observable-page.js @@ -1,20 +1,20 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Basics", "ns-framework-modules-category/observable//basics/basics-page"), - new link("Two-Way Binding", "ns-framework-modules-category/observable/two-way/two-way-page"), - new link("MVVM Pattern", "ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-page"), - new link("Parents Binding", "ns-framework-modules-category/observable/parent-binding/parent-binding-page"), - new link("Plain Object Binding", "ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-page") + new Link("Basics", "ns-framework-modules-category/observable/basics/basics-page"), + new Link("Two-Way Binding", "ns-framework-modules-category/observable/two-way/two-way-page"), + new Link("MVVM Pattern", "ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-page"), + new Link("Parents Binding", "ns-framework-modules-category/observable/parent-binding/parent-binding-page"), + new Link("Plain Object Binding", "ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-page") ]; const navigationLinksTsc = [ - new link("Basics", "ns-framework-modules-category/observable//basics/basics-ts-page"), - new link("Two-Way Binding", "ns-framework-modules-category/observable/two-way/two-way-ts-page"), - new link("MVVM Pattern", "ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-ts-page"), - new link("Parents Binding", "ns-framework-modules-category/observable/parent-binding/parent-binding-ts-page"), - new link("Plain Object Binding", "ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-ts-page") + new Link("Basics", "ns-framework-modules-category/observable//basics/basics-ts-page"), + new Link("Two-Way Binding", "ns-framework-modules-category/observable/two-way/two-way-ts-page"), + new Link("MVVM Pattern", "ns-framework-modules-category/observable/mvvm-pattern/mvvm-pattern-ts-page"), + new Link("Parents Binding", "ns-framework-modules-category/observable/parent-binding/parent-binding-ts-page"), + new Link("Plain Object Binding", "ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -23,4 +23,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/observable/parent-binding/parent-binding-page.js b/app/ns-framework-modules-category/observable/parent-binding/parent-binding-page.js index 7180e0e..44c6aa7 100644 --- a/app/ns-framework-modules-category/observable/parent-binding/parent-binding-page.js +++ b/app/ns-framework-modules-category/observable/parent-binding/parent-binding-page.js @@ -1,7 +1,7 @@ // >> parent-binding-code -const fromObject = require("data/observable").fromObject; +import { fromObject } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const viewModel = fromObject({ items: [1, 2, 3], @@ -10,5 +10,5 @@ function onNavigatingTo(args) { page.bindingContext = viewModel; } -exports.onNavigatingTo = onNavigatingTo; + // << parent-binding-code diff --git a/app/ns-framework-modules-category/observable/parent-binding/parent-binding-ts-page.ts b/app/ns-framework-modules-category/observable/parent-binding/parent-binding-ts-page.ts index 53624a4..b3c9818 100644 --- a/app/ns-framework-modules-category/observable/parent-binding/parent-binding-ts-page.ts +++ b/app/ns-framework-modules-category/observable/parent-binding/parent-binding-ts-page.ts @@ -1,6 +1,5 @@ // >> parent-binding-code-ts -import { fromObject, EventData } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { EventData, fromObject, Page } from "@nativescript/core"; export function onNavigatingTo(args: EventData) { const page = args.object; diff --git a/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-page.js b/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-page.js index b7cbd1b..869574d 100644 --- a/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-page.js +++ b/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-page.js @@ -1,7 +1,7 @@ // >> plain-object-binding-code -const fromObject = require("tns-core-modules/data/observable").fromObject; +import { fromObject } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const list = []; @@ -15,5 +15,5 @@ function onNavigatingTo(args) { page.bindingContext = viewModel; } -exports.onNavigatingTo = onNavigatingTo; + // << plain-object-binding-code diff --git a/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-ts-page.ts b/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-ts-page.ts index d99c7c8..940e8a3 100644 --- a/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-ts-page.ts +++ b/app/ns-framework-modules-category/observable/plain-object-binding/plain-object-binding-ts-page.ts @@ -1,6 +1,5 @@ // >> plain-object-binding-code-ts -import { fromObject, EventData } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { EventData, fromObject, Page } from "@nativescript/core"; export function onNavigatingTo(args: EventData) { const page = args.object; diff --git a/app/ns-framework-modules-category/observable/two-way/two-way-page.js b/app/ns-framework-modules-category/observable/two-way/two-way-page.js index 6c90bd6..1b7376c 100644 --- a/app/ns-framework-modules-category/observable/two-way/two-way-page.js +++ b/app/ns-framework-modules-category/observable/two-way/two-way-page.js @@ -1,8 +1,7 @@ -const fromObject = require("data/observable").fromObject; -const TextField = require("ui/text-field").TextField; -const Label = require("ui/label").Label; +import { Label, TextField, fromObject } from "@nativescript/core"; -function onStackLayoutLoaded(args) { + +export function onStackLayoutLoaded(args) { const stackLayout = args.object; // >> two-way-binding-code @@ -42,4 +41,3 @@ function onStackLayoutLoaded(args) { targetLabel.bind(labelBindingOptions, observableSource); // << two-way-binding-code } -exports.onStackLayoutLoaded = onStackLayoutLoaded; diff --git a/app/ns-framework-modules-category/observable/two-way/two-way-ts-page.ts b/app/ns-framework-modules-category/observable/two-way/two-way-ts-page.ts index 2df2649..4d22ba0 100644 --- a/app/ns-framework-modules-category/observable/two-way/two-way-ts-page.ts +++ b/app/ns-framework-modules-category/observable/two-way/two-way-ts-page.ts @@ -1,6 +1,4 @@ -import { fromObject } from "tns-core-modules/data/observable"; -import { TextField } from "tns-core-modules/ui/text-field"; -import { Label } from "tns-core-modules/ui/label"; +import { fromObject, Label, TextField } from "@nativescript/core"; export function onStackLayoutLoaded(args) { const stackLayout = args.object; diff --git a/app/ns-framework-modules-category/platform/platform-page.js b/app/ns-framework-modules-category/platform/platform-page.js index 154e8e6..890fe8f 100644 --- a/app/ns-framework-modules-category/platform/platform-page.js +++ b/app/ns-framework-modules-category/platform/platform-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-framework-modules-category/platform/usage/usage-page") + new Link("Usage", "ns-framework-modules-category/platform/usage/usage-page") ]; const navigationLinksTsc = [ - new link("Usage", "ns-framework-modules-category/platform/usage/usage-ts-page") + new Link("Usage", "ns-framework-modules-category/platform/usage/usage-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/platform/usage/usage-page.js b/app/ns-framework-modules-category/platform/usage/usage-page.js index a13c1a5..6ea83c1 100644 --- a/app/ns-framework-modules-category/platform/usage/usage-page.js +++ b/app/ns-framework-modules-category/platform/usage/usage-page.js @@ -1,26 +1,26 @@ // >> get-screen-device-info -const platformModule = require("tns-core-modules/platform"); +import { Device, Screen, isAndroid, isIOS } from "@nativescript/core"; -function onNavigatingTo(args) { - console.log(`Running on Android? ${platformModule.isAndroid}`); - console.log(`Running on iOS? ${platformModule.isIOS}`); +export function onNavigatingTo(args) { + console.log(`Running on Android? ${isAndroid}`); + console.log(`Running on iOS? ${isIOS}`); - console.log(`device.model ${platformModule.device.model}`); // For example: "Nexus 5" or "iPhone". - console.log(`device.deviceType ${platformModule.device.deviceType}`); // "Phone" | "Tablet" - console.log(`device.os ${platformModule.device.os}`); // For example: "Android" or "iOS". - console.log(`device.osVersion ${platformModule.device.osVersion}`); // For example: 4.4.4(android), 8.1(ios) - console.log(`device.sdkVersion ${platformModule.device.sdkVersion}`); // For example: 19(android), 8.1(ios). - console.log(`device.language ${platformModule.device.language}`); // For example "en" or "en-US". - console.log(`device.manufacturer ${platformModule.device.manufacturer}`); // For example: "Apple" or "HTC" or "Samsung". - console.log(`device.uuid ${platformModule.device.uuid}`); // The unique identification number - console.log(`device.region ${platformModule.device.region}`); // For example "US". + console.log(`device.model ${Device.model}`); // For example: "Nexus 5" or "iPhone". + console.log(`device.deviceType ${Device.deviceType}`); // "Phone" | "Tablet" + console.log(`device.os ${Device.os}`); // For example: "Android" or "iOS". + console.log(`device.osVersion ${Device.osVersion}`); // For example: 4.4.4(android), 8.1(ios) + console.log(`device.sdkVersion ${Device.sdkVersion}`); // For example: 19(android), 8.1(ios). + console.log(`device.language ${Device.language}`); // For example "en" or "en-US". + console.log(`device.manufacturer ${Device.manufacturer}`); // For example: "Apple" or "HTC" or "Samsung". + console.log(`device.uuid ${Device.uuid}`); // The unique identification number + console.log(`device.region ${Device.region}`); // For example "US". - console.log(`screen.mainScreen.heightDIPs ${platformModule.screen.mainScreen.heightDIPs}`); // The absolute height of the screen in density independent pixels. - console.log(`screen.mainScreen.heightPixels ${platformModule.screen.mainScreen.heightPixels}`); // The absolute height of the screen in pixels. - console.log(`screen.mainScreen.scale ${platformModule.screen.mainScreen.scale}`); // The logical density of the display. - console.log(`screen.mainScreen.widthDIPs ${platformModule.screen.mainScreen.widthDIPs}`); // The absolute width of the screen in density independent pixels. - console.log(`screen.mainScreen.widthPixels ${platformModule.screen.mainScreen.widthPixels}`); // The absolute width of the screen in pixel + console.log(`screen.mainScreen.heightDIPs ${Screen.mainScreen.heightDIPs}`); // The absolute height of the screen in density independent pixels. + console.log(`screen.mainScreen.heightPixels ${Screen.mainScreen.heightPixels}`); // The absolute height of the screen in pixels. + console.log(`screen.mainScreen.scale ${Screen.mainScreen.scale}`); // The logical density of the display. + console.log(`screen.mainScreen.widthDIPs ${Screen.mainScreen.widthDIPs}`); // The absolute width of the screen in density independent pixels. + console.log(`screen.mainScreen.widthPixels ${Screen.mainScreen.widthPixels}`); // The absolute width of the screen in pixel } -exports.onNavigatingTo = onNavigatingTo; + // << get-screen-device-info diff --git a/app/ns-framework-modules-category/platform/usage/usage-ts-page.ts b/app/ns-framework-modules-category/platform/usage/usage-ts-page.ts index 4087461..e257bcf 100644 --- a/app/ns-framework-modules-category/platform/usage/usage-ts-page.ts +++ b/app/ns-framework-modules-category/platform/usage/usage-ts-page.ts @@ -1,25 +1,25 @@ // tslint:disable:max-line-length // >> get-screen-device-info-ts -import { device, screen, isAndroid, isIOS } from "tns-core-modules/platform"; +import { Device, Screen, isAndroid, isIOS } from "@nativescript/core"; export function onNavigatingTo(args) { console.log(`Running on Android? ${isAndroid}`); console.log(`Running on iOS? ${isIOS}`); - console.log(`device.model ${device.model}`); // For example: "Nexus 5" or "iPhone". - console.log(`device.deviceType ${device.deviceType}`); // "Phone" | "Tablet" - console.log(`device.os ${device.os}`); // For example: "Android" or "iOS". - console.log(`device.osVersion ${device.osVersion}`); // For example: 4.4.4(android), 8.1(ios) - console.log(`device.sdkVersion ${device.sdkVersion}`); // For example: 19(android), 8.1(ios). - console.log(`device.language ${device.language}`); // For example "en" or "en-US". - console.log(`device.manufacturer ${device.manufacturer}`); // For example: "Apple" or "HTC" or "Samsung". - console.log(`device.uuid ${device.uuid}`); // The unique identification number - console.log(`device.region ${device.region}`); // For example "US". + console.log(`device.model ${Device.model}`); // For example: "Nexus 5" or "iPhone". + console.log(`device.deviceType ${Device.deviceType}`); // "Phone" | "Tablet" + console.log(`device.os ${Device.os}`); // For example: "Android" or "iOS". + console.log(`device.osVersion ${Device.osVersion}`); // For example: 4.4.4(android), 8.1(ios) + console.log(`device.sdkVersion ${Device.sdkVersion}`); // For example: 19(android), 8.1(ios). + console.log(`device.language ${Device.language}`); // For example "en" or "en-US". + console.log(`device.manufacturer ${Device.manufacturer}`); // For example: "Apple" or "HTC" or "Samsung". + console.log(`device.uuid ${Device.uuid}`); // The unique identification number + console.log(`device.region ${Device.region}`); // For example "US". - console.log(`screen.mainScreen.heightDIPs ${screen.mainScreen.heightDIPs}`); // The absolute height of the screen in density independent pixels. - console.log(`screen.mainScreen.heightPixels ${screen.mainScreen.heightPixels}`); // The absolute height of the screen in pixels. - console.log(`screen.mainScreen.scale ${screen.mainScreen.scale}`); // The logical density of the display. - console.log(`screen.mainScreen.widthDIPs ${screen.mainScreen.widthDIPs}`); // The absolute width of the screen in density independent pixels. - console.log(`screen.mainScreen.widthPixels ${screen.mainScreen.widthPixels}`); // The absolute width of the screen in pixel + console.log(`screen.mainScreen.heightDIPs ${Screen.mainScreen.heightDIPs}`); // The absolute height of the screen in density independent pixels. + console.log(`screen.mainScreen.heightPixels ${Screen.mainScreen.heightPixels}`); // The absolute height of the screen in pixels. + console.log(`screen.mainScreen.scale ${Screen.mainScreen.scale}`); // The logical density of the display. + console.log(`screen.mainScreen.widthDIPs ${Screen.mainScreen.widthDIPs}`); // The absolute width of the screen in density independent pixels. + console.log(`screen.mainScreen.widthPixels ${Screen.mainScreen.widthPixels}`); // The absolute width of the screen in pixel } // << get-screen-device-info-ts diff --git a/app/ns-framework-modules-category/timer/setting-interval/interval-page.js b/app/ns-framework-modules-category/timer/setting-interval/interval-page.js index 3e596bf..485d684 100644 --- a/app/ns-framework-modules-category/timer/setting-interval/interval-page.js +++ b/app/ns-framework-modules-category/timer/setting-interval/interval-page.js @@ -1,19 +1,20 @@ -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; // >> require-timer -const timerModule = require("tns-core-modules/timer"); +// Timers are exported under Utils +import { Utils } from "@nativescript/core"; // << require-timer const color = ["green", "yellow", "red"]; let id; let status = true; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); vm.set("buttonText", "Disable color change"); vm.set("buttoncolor", "gray"); // >> set-interval-example - id = timerModule.setInterval(() => { + id = Utils.setInterval(() => { const randNumber = Math.floor(Math.random() * (color.length)); vm.set("buttoncolor", color[randNumber]); }, 1000); @@ -21,16 +22,16 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function onButtonTap(args) { +export function onButtonTap(args) { const page = args.object.page; const vm = page.bindingContext; if (status) { // >> clear-interval-example - timerModule.clearInterval(id); + Utils.clearInterval(id); // << clear-interval-example vm.set("buttonText", "Enable color change"); } else { - id = timerModule.setInterval(() => { + id = Utils.setInterval(() => { const randNumber = Math.floor(Math.random() * (color.length)); vm.set("buttoncolor", color[randNumber]); }, 1000); @@ -39,5 +40,4 @@ function onButtonTap(args) { } status = !status; } -exports.onNavigatingTo = onNavigatingTo; -exports.onButtonTap = onButtonTap; + diff --git a/app/ns-framework-modules-category/timer/setting-interval/interval-ts-page.ts b/app/ns-framework-modules-category/timer/setting-interval/interval-ts-page.ts index 08e79b6..a2e877b 100644 --- a/app/ns-framework-modules-category/timer/setting-interval/interval-ts-page.ts +++ b/app/ns-framework-modules-category/timer/setting-interval/interval-ts-page.ts @@ -1,7 +1,7 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; -// >> import-timer -import { setInterval, clearInterval } from "tns-core-modules/timer"; +import { Observable, Page } from "@nativescript/core"; +// >> import-time +// Timers are exported under Utils +import { Utils } from "@nativescript/core"; // << import-timer const color = ["green", "yellow", "red"]; let id; @@ -14,7 +14,7 @@ export function onNavigatingTo(args) { vm.set("buttonText", "Disable color change"); vm.set("buttoncolor", "gray"); // >> set-interval-example-ts - id = setInterval(() => { + id = Utils.setInterval(() => { const randNumber = Math.floor(Math.random() * (color.length)); vm.set("buttoncolor", color[randNumber]); }, 1000); @@ -27,11 +27,11 @@ export function onButtonTap(args) { const vm = page.bindingContext; if (status) { // >> clear-interval-example-ts - clearInterval(id); + Utils.clearInterval(id); // << clear-interval-example-ts vm.set("buttonText", "Enable color change"); } else { - id = setInterval(() => { + id = Utils.setInterval(() => { const randNumber = Math.floor(Math.random() * (color.length)); vm.set("buttoncolor", color[randNumber]); }, 1000); diff --git a/app/ns-framework-modules-category/timer/setting-timeout/timeout-page.js b/app/ns-framework-modules-category/timer/setting-timeout/timeout-page.js index f85ee2c..4660fb6 100644 --- a/app/ns-framework-modules-category/timer/setting-timeout/timeout-page.js +++ b/app/ns-framework-modules-category/timer/setting-timeout/timeout-page.js @@ -1,8 +1,7 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const Color = require("tns-core-modules/color").Color; +import { Color, Observable } from "@nativescript/core"; let counter = 1; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); @@ -10,7 +9,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function increase(args) { +export function increase(args) { const button = args.object; const vm = button.page.bindingContext; button.backgroundColor = new Color("#3078FE"); @@ -21,7 +20,7 @@ function increase(args) { }, 1000); } -function decrease(args) { +export function decrease(args) { const button = args.object; const vm = button.page.bindingContext; button.backgroundColor = new Color("#3078FE"); @@ -33,7 +32,3 @@ function decrease(args) { }, 1000); // << settimeout-timer-code } - -exports.onNavigatingTo = onNavigatingTo; -exports.increase = increase; -exports.decrease = decrease; diff --git a/app/ns-framework-modules-category/timer/setting-timeout/timeout-ts-page.ts b/app/ns-framework-modules-category/timer/setting-timeout/timeout-ts-page.ts index 8587a03..181ff1d 100644 --- a/app/ns-framework-modules-category/timer/setting-timeout/timeout-ts-page.ts +++ b/app/ns-framework-modules-category/timer/setting-timeout/timeout-ts-page.ts @@ -1,7 +1,4 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { Color } from "tns-core-modules/color"; -import { Page } from "tns-core-modules/ui/page"; -import { Button } from "tns-core-modules/ui/button"; +import { Button, Color, Observable, Page } from "@nativescript/core"; let counter = 1; export function onNavigatingTo(args) { diff --git a/app/ns-framework-modules-category/timer/timer-page.js b/app/ns-framework-modules-category/timer/timer-page.js index b0b5677..96dbc62 100644 --- a/app/ns-framework-modules-category/timer/timer-page.js +++ b/app/ns-framework-modules-category/timer/timer-page.js @@ -1,14 +1,14 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Interval", "ns-framework-modules-category/timer/setting-interval/interval-page"), - new link("Timeout", "ns-framework-modules-category/timer/setting-timeout/timeout-page") + new Link("Interval", "ns-framework-modules-category/timer/setting-interval/interval-page"), + new Link("Timeout", "ns-framework-modules-category/timer/setting-timeout/timeout-page") ]; const navigationLinksTsc = [ - new link("Interval", "ns-framework-modules-category/timer/setting-interval/interval-ts-page"), - new link("Timeout", "ns-framework-modules-category/timer/setting-timeout/timeout-ts-page") + new Link("Interval", "ns-framework-modules-category/timer/setting-interval/interval-ts-page"), + new Link("Timeout", "ns-framework-modules-category/timer/setting-timeout/timeout-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -17,4 +17,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-page.js b/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-page.js index fee6f92..621474f 100644 --- a/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-page.js +++ b/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-page.js @@ -1,7 +1,4 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray; -const traceModule = require("tns-core-modules/trace"); -const types = require("utils/types"); +import { Observable, ObservableArray, Trace, Utils } from "@nativescript/core"; // >> trace-create-custom-writer const array = new ObservableArray(); const TimestampConsoleWriter = (() => { @@ -12,10 +9,10 @@ const TimestampConsoleWriter = (() => { return; } - const msgType = types.isUndefined(type) ? traceModule.messageType.log : type; + const msgType = Utils.isUndefined(type) ? Trace.messageType.log : type; switch (msgType) { - case traceModule.messageType.log: + case Trace.messageType.log: array.push({ "messageType": "log", "date": new Date().toISOString(), @@ -23,7 +20,7 @@ const TimestampConsoleWriter = (() => { "category": category }); break; - case traceModule.messageType.info: + case Trace.messageType.info: array.push({ "messageType": "info", "date": new Date().toISOString(), @@ -31,7 +28,7 @@ const TimestampConsoleWriter = (() => { "category": category }); break; - case traceModule.messageType.warn: + case Trace.messageType.warn: array.push({ "messageType": "warning", "date": new Date().toISOString(), @@ -39,7 +36,7 @@ const TimestampConsoleWriter = (() => { "category": category }); break; - case traceModule.messageType.error: + case Trace.messageType.error: array.push({ "messageType": "error", "date": new Date().toISOString(), @@ -55,20 +52,20 @@ const TimestampConsoleWriter = (() => { return TimestampConsoleWriter; })(); // << trace-create-custom-writer -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); - traceModule.disable(); + Trace.disable(); // >> trace-add-custom-writer - traceModule.setCategories(traceModule.categories.Navigation); - traceModule.enable(); + Trace.setCategories(Trace.categories.Navigation); + Trace.enable(); // >> (hide) vm.set("array", array); // << (hide) - traceModule.clearWriters(); - traceModule.addWriter(new TimestampConsoleWriter()); + Trace.clearWriters(); + Trace.addWriter(new TimestampConsoleWriter()); // << trace-add-custom-writer page.bindingContext = vm; } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-ts-page.ts b/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-ts-page.ts index 00308a6..46629aa 100644 --- a/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-ts-page.ts +++ b/app/ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-ts-page.ts @@ -1,9 +1,5 @@ // tslint:disable:max-line-length -import { Observable } from "tns-core-modules/data/observable"; -import { ObservableArray } from "tns-core-modules/data/observable-array"; -import { enable, disable, categories, setCategories, messageType, clearWriters, addWriter } from "tns-core-modules/trace"; -import { isUndefined } from "tns-core-modules/utils/types"; -import { Page } from "tns-core-modules/ui/page"; +import { Observable, ObservableArray, Page, Trace, Utils } from "@nativescript/core"; // >> trace-create-custom-writer-ts const array = new ObservableArray(); class TimestampConsoleWriter { @@ -14,10 +10,10 @@ class TimestampConsoleWriter { return; } - const msgType = isUndefined(type) ? messageType.log : type; + const msgType = Utils.isUndefined(type) ? Trace.messageType.log : type; switch (msgType) { - case messageType.log: + case Trace.messageType.log: array.push({ "messageType": "log", "date": new Date().toISOString(), @@ -25,7 +21,7 @@ class TimestampConsoleWriter { "category": category }); break; - case messageType.info: + case Trace.messageType.info: array.push({ "messageType": "info", "date": new Date().toISOString(), @@ -33,7 +29,7 @@ class TimestampConsoleWriter { "category": category }); break; - case messageType.warn: + case Trace.messageType.warn: array.push({ "messageType": "warning", "date": new Date().toISOString(), @@ -41,7 +37,7 @@ class TimestampConsoleWriter { "category": category }); break; - case messageType.error: + case Trace.messageType.error: array.push({ "messageType": "error", "date": new Date().toISOString(), @@ -58,15 +54,15 @@ class TimestampConsoleWriter { export function onNavigatingTo(args) { const page: Page = args.object; const vm = new Observable(); - disable(); + Trace.disable(); // >> trace-add-custom-writer-ts - setCategories(categories.Navigation); - enable(); + Trace.setCategories(Trace.categories.Navigation); + Trace.enable(); // >> (hide) vm.set("array", array); // << (hide) - clearWriters(); - addWriter(new TimestampConsoleWriter()); + Trace.clearWriters(); + Trace.addWriter(new TimestampConsoleWriter()); // << trace-add-custom-writer-ts page.bindingContext = vm; } diff --git a/app/ns-framework-modules-category/trace/trace-page.js b/app/ns-framework-modules-category/trace/trace-page.js index 9bacda5..9de70c5 100644 --- a/app/ns-framework-modules-category/trace/trace-page.js +++ b/app/ns-framework-modules-category/trace/trace-page.js @@ -1,14 +1,14 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Custom Trace Writer", "ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-page"), - new link("Trace Specific Categories", "ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-page") + new Link("Custom Trace Writer", "ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-page"), + new Link("Trace Specific Categories", "ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-page") ]; const navigationLinksTsc = [ - new link("Custom Trace Writer", "ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-ts-page"), - new link("Trace Specific Categories", "ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-ts-page") + new Link("Custom Trace Writer", "ns-framework-modules-category/trace/custom-trace-writer/custom-trace-writer-ts-page"), + new Link("Trace Specific Categories", "ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -17,4 +17,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-page.js b/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-page.js index a6e77ce..c73b519 100644 --- a/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-page.js +++ b/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-page.js @@ -1,61 +1,61 @@ // >> require-trace-module -const traceModule = require("tns-core-modules/trace"); +import { Trace } from "@nativescript/core"; // << require-trace-module -const timerModule = require("tns-core-modules/timer"); -const dialogs = require("tns-core-modules/ui/dialogs"); -function onNavigatingTo(args) { - traceModule.disable(); +import { Dialogs, Utils } from "@nativescript/core"; + +export function onNavigatingTo(args) { + Trace.disable(); // >> setting-specific-tracing-categories - traceModule.setCategories(traceModule.categories.concat( - traceModule.categories.Binding, - traceModule.categories.Layout, - traceModule.categories.Style, - traceModule.categories.ViewHierarchy, - traceModule.categories.VisualTreeEvents + Trace.setCategories(Trace.categories.concat( + Trace.categories.Binding, + Trace.categories.Layout, + Trace.categories.Style, + Trace.categories.ViewHierarchy, + Trace.categories.VisualTreeEvents )); - traceModule.enable(); + Trace.enable(); // << setting-specific-tracing-categories // >> trace-add-categories - traceModule.addCategories(traceModule.categories.Navigation); + Trace.addCategories(Trace.categories.Navigation); // << trace-add-categories - timerModule.setTimeout(() => { + Utils.setTimeout(() => { console.log("-----------------------------------------------------"); console.log("New trace category has been added"); console.log("Category: NativeLifecycle"); console.log("-----------------------------------------------------"); - dialogs.alert("NativeLifecycle trace category has been added.") + Dialogs.alert("NativeLifecycle trace category has been added.") .then(() => { console.log("Dialog closed!"); }); - traceModule.addCategories(traceModule.categories.NativeLifecycle); + Trace.addCategories(Trace.categories.NativeLifecycle); }, 2000); - traceModule.write("I (heart) NativeScript!", traceModule.categories.Debug); + Trace.write("I (heart) NativeScript!", Trace.categories.Debug); } -function checkIsDebugCategorySet() { - if (traceModule.isCategorySet(traceModule.categories.Debug)) { - dialogs.alert("Debug category has been set") +export function checkIsDebugCategorySet() { + if (Trace.isCategorySet(Trace.categories.Debug)) { + Dialogs.alert("Debug category has been set") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("Debug category has not been set") + Dialogs.alert("Debug category has not been set") .then(() => { console.log("Dialog closed!"); }); } } -function checkIsDebugVisualTreeEventsSet() { +export function checkIsDebugVisualTreeEventsSet() { // >> check-iscategoryset - if (traceModule.isCategorySet(traceModule.categories.VisualTreeEvents)) { - dialogs.alert("VisualTreeEvents category has been set") + if (Trace.isCategorySet(Trace.categories.VisualTreeEvents)) { + Dialogs.alert("VisualTreeEvents category has been set") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("VisualTreeEvents category has not been set") + Dialogs.alert("VisualTreeEvents category has not been set") .then(() => { console.log("Dialog closed!"); }); @@ -63,39 +63,33 @@ function checkIsDebugVisualTreeEventsSet() { // << check-iscategoryset } -function enableTracing() { - if (traceModule.isEnabled() === false) { - traceModule.enable(); - dialogs.alert("Trace has been enabled") +export function enableTracing() { + if (Trace.isEnabled() === false) { + Trace.enable(); + Dialogs.alert("Trace has been enabled") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("Trace has been already enabled") + Dialogs.alert("Trace has been already enabled") .then(() => { console.log("Dialog closed!"); }); } } -function disableTracing() { - if (traceModule.isEnabled()) { +export function disableTracing() { + if (Trace.isEnabled()) { // >> disable-tracing - traceModule.disable(); + Trace.disable(); // << disable-tracing - dialogs.alert("Trace has been disabled") + Dialogs.alert("Trace has been disabled") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("Trace has been already disabled") + Dialogs.alert("Trace has been already disabled") .then(() => { console.log("Dialog closed!"); }); } } - -exports.onNavigatingTo = onNavigatingTo; -exports.checkIsDebugCategorySet = checkIsDebugCategorySet; -exports.checkIsDebugVisualTreeEventsSet = checkIsDebugVisualTreeEventsSet; -exports.enableTracing = enableTracing; -exports.disableTracing = disableTracing; diff --git a/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-ts-page.ts b/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-ts-page.ts index ba85995..b643635 100644 --- a/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-ts-page.ts +++ b/app/ns-framework-modules-category/trace/trace-specific-categories/trace-specific-categories-ts-page.ts @@ -1,47 +1,48 @@ // tslint:disable:max-line-length // >> import-trace-module -import { enable, disable, isEnabled, categories, setCategories, addCategories, write, isCategorySet } from "tns-core-modules/trace"; +import { Trace } from "@nativescript/core"; // << import-trace-module -import { setTimeout } from "tns-core-modules/timer"; -import * as dialogs from "tns-core-modules/ui/dialogs"; +import { Dialogs, Utils } from "@nativescript/core"; + + export function onNavigatingTo(args) { - disable(); + Trace.disable(); // >> setting-specific-tracing-categories-ts - setCategories(categories.concat( - categories.Binding, - categories.Layout, - categories.Style, - categories.ViewHierarchy, - categories.VisualTreeEvents + Trace.setCategories(Trace.categories.concat( + Trace.categories.Binding, + Trace.categories.Layout, + Trace.categories.Style, + Trace.categories.ViewHierarchy, + Trace.categories.VisualTreeEvents )); - enable(); + Trace.enable(); // << setting-specific-tracing-categories-ts // >> trace-add-categories-ts - addCategories(categories.Navigation); + Trace.addCategories(Trace.categories.Navigation); // << trace-add-categories-ts - setTimeout(() => { + Utils.setTimeout(() => { console.log("-----------------------------------------------------"); console.log("New trace category has been added"); console.log("Category: NativeLifecycle"); console.log("-----------------------------------------------------"); - dialogs.alert("NativeLifecycle trace category has been added.") + Dialogs.alert("NativeLifecycle trace category has been added.") .then(() => { console.log("Dialog closed!"); }); - addCategories(categories.NativeLifecycle); + Trace.addCategories(Trace.categories.NativeLifecycle); }, 2000); - write("I (heart) NativeScript!", categories.Debug); + Trace.write("I (heart) NativeScript!", Trace.categories.Debug); } export function checkIsDebugCategorySet() { - if (isCategorySet(categories.Debug)) { - dialogs.alert("Debug category has been set") + if (Trace.isCategorySet(Trace.categories.Debug)) { + Dialogs.alert("Debug category has been set") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("Debug category has not been set") + Dialogs.alert("Debug category has not been set") .then(() => { console.log("Dialog closed!"); }); @@ -50,13 +51,13 @@ export function checkIsDebugCategorySet() { export function checkIsDebugVisualTreeEventsSet() { // >> check-iscategoryset-ts - if (isCategorySet(categories.VisualTreeEvents)) { - dialogs.alert("VisualTreeEvents category has been set") + if (Trace.isCategorySet(Trace.categories.VisualTreeEvents)) { + Dialogs.alert("VisualTreeEvents category has been set") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("VisualTreeEvents category has not been set") + Dialogs.alert("VisualTreeEvents category has not been set") .then(() => { console.log("Dialog closed!"); }); @@ -65,30 +66,30 @@ export function checkIsDebugVisualTreeEventsSet() { } export function enableTracing() { - if (isEnabled() === false) { - enable(); - dialogs.alert("Trace has been enabled") + if (Trace.isEnabled() === false) { + Trace.enable(); + Dialogs.alert("Trace has been enabled") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("Trace has been already enabled") + Dialogs.alert("Trace has been already enabled") .then(() => { console.log("Dialog closed!"); }); } } export function disableTracing() { - if (isEnabled()) { + if (Trace.isEnabled()) { // >> disable-tracing-ts - disable(); + Trace.disable(); // << disable-tracing-ts - dialogs.alert("Trace has been disabled") + Dialogs.alert("Trace has been disabled") .then(() => { console.log("Dialog closed!"); }); } else { - dialogs.alert("Trace has been already disabled") + Dialogs.alert("Trace has been already disabled") .then(() => { console.log("Dialog closed!"); }); diff --git a/app/ns-framework-modules-category/virtual-array/basics/basics-page.js b/app/ns-framework-modules-category/virtual-array/basics/basics-page.js index b67446b..e76bc53 100644 --- a/app/ns-framework-modules-category/virtual-array/basics/basics-page.js +++ b/app/ns-framework-modules-category/virtual-array/basics/basics-page.js @@ -1,8 +1,8 @@ // >> virtual-array-require -const VirtualArray = require("tns-core-modules/data/virtual-array").VirtualArray; +import { VirtualArray } from "@nativescript/core"; // << virtual-array-require -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; // >> virtual-array-creation @@ -35,4 +35,4 @@ function onNavigatingTo(args) { page.bindingContext = { items: virtualArray }; } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/virtual-array/basics/basics-ts-page.ts b/app/ns-framework-modules-category/virtual-array/basics/basics-ts-page.ts index 79fa805..fb01e74 100644 --- a/app/ns-framework-modules-category/virtual-array/basics/basics-ts-page.ts +++ b/app/ns-framework-modules-category/virtual-array/basics/basics-ts-page.ts @@ -1,5 +1,5 @@ // >> virtual-array-require-ts -import { VirtualArray, ChangedData } from "tns-core-modules/data/virtual-array"; +import { VirtualArray, ChangedData } from "@nativescript/core"; // << virtual-array-require-ts export function onNavigatingTo(data) { diff --git a/app/ns-framework-modules-category/virtual-array/virtual-array-page.js b/app/ns-framework-modules-category/virtual-array/virtual-array-page.js index b650c7d..e3721bc 100644 --- a/app/ns-framework-modules-category/virtual-array/virtual-array-page.js +++ b/app/ns-framework-modules-category/virtual-array/virtual-array-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Basics", "ns-framework-modules-category/virtual-array//basics/basics-page") + new Link("Basics", "ns-framework-modules-category/virtual-array/basics/basics-page") ]; const navigationLinksTsc = [ - new link("Basics", "ns-framework-modules-category/virtual-array//basics/basics-ts-page") + new Link("Basics", "ns-framework-modules-category/virtual-array/basics/basics-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-framework-modules-category/xml-parser/basics/basics-page.js b/app/ns-framework-modules-category/xml-parser/basics/basics-page.js index c0be627..346ede5 100644 --- a/app/ns-framework-modules-category/xml-parser/basics/basics-page.js +++ b/app/ns-framework-modules-category/xml-parser/basics/basics-page.js @@ -1,13 +1,12 @@ -const Observable = require("tns-core-modules/data/observable").Observable; -const ObservableArray = require("tns-core-modules/data/observable-array").ObservableArray; +import { Observable, ObservableArray } from "@nativescript/core"; // >> require-xml-module -const xmlModule = require("tns-core-modules/xml"); +import { ParserEventType, XmlParser } from "@nativescript/core"; // << require-xml-module const source = new ObservableArray(); // >> parser-event const onEventCallback = (event) => { switch (event.eventType) { - case xmlModule.ParserEventType.StartElement: + case ParserEventType.StartElement: if (event.attributes) { for (const attributeName in event.attributes) { if (event.attributes.hasOwnProperty(attributeName)) { @@ -30,7 +29,7 @@ const onEventCallback = (event) => { }); } break; - case xmlModule.ParserEventType.EndElement: + case ParserEventType.EndElement: source.push({ eventType:event.eventType, elementName:event.elementName, @@ -40,7 +39,7 @@ const onEventCallback = (event) => { }); break; - case xmlModule.ParserEventType.Text: + case ParserEventType.Text: const significantText = event.data.trim(); if (significantText !== "") { @@ -63,9 +62,9 @@ const onErrorCallback = (error) => { }; // << parser-event // >> parse-method -const xmlParser = new xmlModule.XmlParser(onEventCallback, onErrorCallback); +const xmlParser = new XmlParser(onEventCallback, onErrorCallback); // >> (hide) -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); vm.set("source", source); @@ -73,7 +72,7 @@ function onNavigatingTo(args) { page.bindingContext = vm; } -function parseXMLButton(args) { +export function parseXMLButton(args) { source.splice(0); // << (hide) xmlParser.parse(` @@ -87,5 +86,4 @@ function parseXMLButton(args) { `); // << parse-method } -exports.onNavigatingTo = onNavigatingTo; -exports.parseXMLButton = parseXMLButton; + diff --git a/app/ns-framework-modules-category/xml-parser/basics/basics-page.xml b/app/ns-framework-modules-category/xml-parser/basics/basics-page.xml index a550acf..cce1a8d 100644 --- a/app/ns-framework-modules-category/xml-parser/basics/basics-page.xml +++ b/app/ns-framework-modules-category/xml-parser/basics/basics-page.xml @@ -27,4 +27,4 @@ - \ No newline at end of file + diff --git a/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.ts b/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.ts index ae7c39a..327b6df 100644 --- a/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.ts +++ b/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.ts @@ -1,14 +1,12 @@ -import { Observable } from "tns-core-modules/data/observable"; -import { ObservableArray } from "tns-core-modules/data/observable-array"; -import { Page } from "tns-core-modules/ui/page"; +import { Observable, ObservableArray, Page} from "@nativescript/core"; // >> import-xml-module -import * as xmlModule from "tns-core-modules/xml"; +import { ParserEventType, XmlParser } from "@nativescript/core"; // << import-xml-module const source = new ObservableArray(); // >> parser-event-ts const onEventCallback = (event) => { switch (event.eventType) { - case xmlModule.ParserEventType.StartElement: + case ParserEventType.StartElement: if (event.attributes) { for (const attributeName in event.attributes) { if (event.attributes.hasOwnProperty(attributeName)) { @@ -31,7 +29,7 @@ const onEventCallback = (event) => { }); } break; - case xmlModule.ParserEventType.EndElement: + case ParserEventType.EndElement: source.push({ eventType: event.eventType, elementName: event.elementName, @@ -41,7 +39,7 @@ const onEventCallback = (event) => { }); break; - case xmlModule.ParserEventType.Text: + case ParserEventType.Text: const significantText = event.data.trim(); if (significantText !== "") { @@ -64,7 +62,7 @@ const onErrorCallback = (error) => { }; // << parser-event-ts // >> parse-method-ts -const xmlParser = new xmlModule.XmlParser(onEventCallback, onErrorCallback); +const xmlParser = new XmlParser(onEventCallback, onErrorCallback); // >> (hide) export function onNavigatingTo(args) { const page: Page = args.object; diff --git a/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.xml b/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.xml index a550acf..cce1a8d 100644 --- a/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.xml +++ b/app/ns-framework-modules-category/xml-parser/basics/basics-ts-page.xml @@ -27,4 +27,4 @@ - \ No newline at end of file + diff --git a/app/ns-framework-modules-category/xml-parser/xml-parser-page.js b/app/ns-framework-modules-category/xml-parser/xml-parser-page.js index 2fddf96..82eae7c 100644 --- a/app/ns-framework-modules-category/xml-parser/xml-parser-page.js +++ b/app/ns-framework-modules-category/xml-parser/xml-parser-page.js @@ -1,12 +1,12 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Basics", "ns-framework-modules-category/xml-parser/basics/basics-page") + new Link("Basics", "ns-framework-modules-category/xml-parser/basics/basics-page") ]; const navigationLinksTsc = [ - new link("Basics", "ns-framework-modules-category/xml-parser/basics/basics-ts-page") + new Link("Basics", "ns-framework-modules-category/xml-parser/basics/basics-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -15,4 +15,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-category/icon-fonts/icon-fonts-page.js b/app/ns-ui-category/icon-fonts/icon-fonts-page.js index 47cd3f5..8057a31 100644 --- a/app/ns-ui-category/icon-fonts/icon-fonts-page.js +++ b/app/ns-ui-category/icon-fonts/icon-fonts-page.js @@ -1,13 +1,13 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-ui-category/icon-fonts/usage/usage-page"), - new link("Tips & Tricks", "ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-page") + new Link("Usage", "ns-ui-category/icon-fonts/usage/usage-page"), + new Link("Tips & Tricks", "ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-page") ]; const navigationLinksTsc = [ - new link("Tips & Tricks", "ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-ts-page") + new Link("Tips & Tricks", "ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -16,4 +16,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-page.js b/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-page.js index bb204cd..e41d537 100644 --- a/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-page.js +++ b/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-page.js @@ -1,6 +1,6 @@ // >> icon-font-code-behind-code -const Observable = require("tns-core-modules/data/observable").Observable; -function pageLoaded(args) { +import { Observable } from "@nativescript/core"; +export function pageLoaded(args) { const page = args.object; const viewModel = new Observable(); @@ -15,5 +15,4 @@ function pageLoaded(args) { page.bindingContext = viewModel; } -exports.pageLoaded = pageLoaded; // << icon-font-code-behind-code diff --git a/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-ts-page.ts b/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-ts-page.ts index 55090b2..bd6a0e8 100644 --- a/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-ts-page.ts +++ b/app/ns-ui-category/icon-fonts/tips-and-tricks/tips-and-tricks-ts-page.ts @@ -1,6 +1,5 @@ // >> icon-font-code-behind-code-ts -import { Observable, EventData } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { EventData, Observable, Page } from "@nativescript/core"; export function pageLoaded(args: EventData) { const page = args.object; diff --git a/app/ns-ui-category/modal-view/basics/basics-page.js b/app/ns-ui-category/modal-view/basics/basics-page.js index a1c0584..c73a2e0 100644 --- a/app/ns-ui-category/modal-view/basics/basics-page.js +++ b/app/ns-ui-category/modal-view/basics/basics-page.js @@ -1,10 +1,11 @@ // >> main-view-js const modalViewModule = "ns-ui-category/modal-view/basics/modal-view-page"; -function openModal(args) { +export function openModal(args) { const mainView = args.object; const option = { - context: { username: "test_username", password: "test" }, + context: { username: "test_username", +password: "test" }, closeCallback: (username, password) => { // Receive data from the modal view. e.g. username & password alert(`Username: ${username} : Password: ${password}`); @@ -14,5 +15,4 @@ function openModal(args) { mainView.showModal(modalViewModule, option); } -exports.openModal = openModal; // << main-view-js diff --git a/app/ns-ui-category/modal-view/basics/basics-ts-page.ts b/app/ns-ui-category/modal-view/basics/basics-ts-page.ts index f62f94e..ebde20a 100644 --- a/app/ns-ui-category/modal-view/basics/basics-ts-page.ts +++ b/app/ns-ui-category/modal-view/basics/basics-ts-page.ts @@ -1,6 +1,6 @@ // >> main-view-ts -import { Button } from "tns-core-modules/ui/button"; -import { ShowModalOptions } from "tns-core-modules/ui/core/view"; +import { Button, ShowModalOptions } from "@nativescript/core"; + const modalViewModulets = "ns-ui-category/modal-view/basics/modal-ts-view-page"; export function openModal(args) { diff --git a/app/ns-ui-category/modal-view/basics/modal-ts-view-page.ts b/app/ns-ui-category/modal-view/basics/modal-ts-view-page.ts index bb8971f..f2f8ed3 100644 --- a/app/ns-ui-category/modal-view/basics/modal-ts-view-page.ts +++ b/app/ns-ui-category/modal-view/basics/modal-ts-view-page.ts @@ -1,6 +1,6 @@ // >> modal-view-ts -import { fromObject } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; +import { fromObject, Page } from "@nativescript/core"; + let closeCallback; export function onShownModally(args) { diff --git a/app/ns-ui-category/modal-view/basics/modal-view-page.js b/app/ns-ui-category/modal-view/basics/modal-view-page.js index b2f459f..6a88aaa 100644 --- a/app/ns-ui-category/modal-view/basics/modal-view-page.js +++ b/app/ns-ui-category/modal-view/basics/modal-view-page.js @@ -1,21 +1,19 @@ // >> modal-view-js -const observableModule = require("tns-core-modules/data/observable"); +import { fromObject } from "@nativescript/core"; let closeCallback; -function onShownModally(args) { +export function onShownModally(args) { const context = args.context; closeCallback = args.closeCallback; const page = args.object; - page.bindingContext = observableModule.fromObject(context); + page.bindingContext = fromObject(context); } -exports.onShownModally = onShownModally; -function onLoginButtonTap(args) { +export function onLoginButtonTap(args) { const page = args.object.page; const bindingContext = page.bindingContext; const username = bindingContext.get("username"); const password = bindingContext.get("password"); closeCallback(username, password); } -exports.onLoginButtonTap = onLoginButtonTap; // << modal-view-js diff --git a/app/ns-ui-category/modal-view/custom-actionbar/main-page.js b/app/ns-ui-category/modal-view/custom-actionbar/main-page.js index 377ca7a..1323c7f 100644 --- a/app/ns-ui-category/modal-view/custom-actionbar/main-page.js +++ b/app/ns-ui-category/modal-view/custom-actionbar/main-page.js @@ -1,7 +1,7 @@ // >> main-page-js-action-bar const modalView = "ns-ui-category/modal-view/custom-actionbar/modal-root"; -function openModal(args) { +export function openModal(args) { const mainpage = args.object.page; const option = { context: "some context", @@ -10,5 +10,5 @@ function openModal(args) { }; mainpage.showModal(modalView, option); } -exports.openModal = openModal; + // << main-page-js-action-bar diff --git a/app/ns-ui-category/modal-view/custom-actionbar/main-ts-page.ts b/app/ns-ui-category/modal-view/custom-actionbar/main-ts-page.ts index dd8794e..2fee7fb 100644 --- a/app/ns-ui-category/modal-view/custom-actionbar/main-ts-page.ts +++ b/app/ns-ui-category/modal-view/custom-actionbar/main-ts-page.ts @@ -1,6 +1,6 @@ // >> main-page-ts-action-bar -import { Page } from "tns-core-modules/ui/page"; -import { ShowModalOptions } from "tns-core-modules/ui/core/view"; +import { Page, ShowModalOptions } from "@nativescript/core"; + const modalView = "ns-ui-category/modal-view/custom-actionbar/modal-ts-root"; export function openModal(args) { diff --git a/app/ns-ui-category/modal-view/custom-actionbar/modal-view-page.js b/app/ns-ui-category/modal-view/custom-actionbar/modal-view-page.js index c389d10..9c6595f 100644 --- a/app/ns-ui-category/modal-view/custom-actionbar/modal-view-page.js +++ b/app/ns-ui-category/modal-view/custom-actionbar/modal-view-page.js @@ -1,11 +1,9 @@ // >> modal-view-js-action-bar -function onShowingModally(args) { +export function onShowingModally(args) { console.log("onShowingModally"); } -exports.onShowingModally = onShowingModally; -function onCloseModal(args) { +export function onCloseModal(args) { args.object.closeModal(); } -exports.onCloseModal = onCloseModal; // << modal-view-js-action-bar diff --git a/app/ns-ui-category/modal-view/modal-navigation/first-modal-ts-view-page.ts b/app/ns-ui-category/modal-view/modal-navigation/first-modal-ts-view-page.ts index 9f6c60f..7b6c94e 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/first-modal-ts-view-page.ts +++ b/app/ns-ui-category/modal-view/modal-navigation/first-modal-ts-view-page.ts @@ -1,5 +1,5 @@ // >> first-modal-view-ts-navigation -import { Page } from "tns-core-modules/ui/page"; +import { Page } from "@nativescript/core"; export function onNavigate(args) { const view = args.object; const page: Page = view.page; diff --git a/app/ns-ui-category/modal-view/modal-navigation/first-modal-view-page.js b/app/ns-ui-category/modal-view/modal-navigation/first-modal-view-page.js index 0808712..bf9fe0e 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/first-modal-view-page.js +++ b/app/ns-ui-category/modal-view/modal-navigation/first-modal-view-page.js @@ -1,18 +1,15 @@ // >> first-modal-view-js-navigation -function onNavigate(args) { +export function onNavigate(args) { const view = args.object; const page = view.page; page.frame.navigate("ns-ui-category/modal-view/modal-navigation/second-modal-view-page"); } -exports.onNavigate = onNavigate; -function onPageLoaded(args) { +export function onPageLoaded(args) { console.log("onPageLoaded"); } -exports.onPageLoaded = onPageLoaded; -function onCloseModal(args) { +export function onCloseModal(args) { args.object.closeModal(); } -exports.onCloseModal = onCloseModal; // << first-modal-view-js-navigation diff --git a/app/ns-ui-category/modal-view/modal-navigation/main-page.js b/app/ns-ui-category/modal-view/modal-navigation/main-page.js index 5b23e30..394a15d 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/main-page.js +++ b/app/ns-ui-category/modal-view/modal-navigation/main-page.js @@ -1,7 +1,7 @@ // >> main-page-js-navigation const modalView = "ns-ui-category/modal-view/modal-navigation/modal-root"; -function openModal(args) { +export function openModal(args) { const mainpage = args.object.page; const options = { context: "some context", @@ -11,5 +11,5 @@ function openModal(args) { }; mainpage.showModal(modalView, options); } -exports.openModal = openModal; + // << main-page-js-navigation diff --git a/app/ns-ui-category/modal-view/modal-navigation/main-ts-page.ts b/app/ns-ui-category/modal-view/modal-navigation/main-ts-page.ts index db18861..0d5540b 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/main-ts-page.ts +++ b/app/ns-ui-category/modal-view/modal-navigation/main-ts-page.ts @@ -1,8 +1,8 @@ // >> main-page-ts-navigation -import { ShowModalOptions } from "tns-core-modules/ui/core/view"; +import { ShowModalOptions } from "@nativescript/core"; const modalView = "ns-ui-category/modal-view/modal-navigation/modal-root"; -function openModal(args) { +export function openModal(args) { const mainpage = args.object.page; const options: ShowModalOptions = { context: "some context", @@ -11,5 +11,5 @@ function openModal(args) { }; mainpage.showModal(modalView, options); } -exports.openModal = openModal; + // << main-page-ts-navigation diff --git a/app/ns-ui-category/modal-view/modal-navigation/modal-root.js b/app/ns-ui-category/modal-view/modal-navigation/modal-root.js index 0b5d0fd..a774eff 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/modal-root.js +++ b/app/ns-ui-category/modal-view/modal-navigation/modal-root.js @@ -1,12 +1,12 @@ -exports.onShowingModally = (args) => { +export function onShowingModally(args) { // args is of type ShownModallyData console.log(`${args.eventName}`); // showingModally -}; +} -exports.onShownModally = (args) => { +export function onShownModally(args) { // args is of type ShownModallyData console.log(` ${args.context}`); console.log(` ${args.eventName}`); // shownModally console.log(` ${args.object}`); -}; +} diff --git a/app/ns-ui-category/modal-view/modal-navigation/modal-ts-root.ts b/app/ns-ui-category/modal-view/modal-navigation/modal-ts-root.ts index 55412e5..cac4e86 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/modal-ts-root.ts +++ b/app/ns-ui-category/modal-view/modal-navigation/modal-ts-root.ts @@ -1,4 +1,4 @@ -import { ShownModallyData } from "tns-core-modules/ui/page"; +import { ShownModallyData } from "@nativescript/core"; export function onShowingModally(args: ShownModallyData) { // args is of type ShownModallyData diff --git a/app/ns-ui-category/modal-view/modal-navigation/second-modal-ts-view-page.ts b/app/ns-ui-category/modal-view/modal-navigation/second-modal-ts-view-page.ts index 9d4fcf5..26d664c 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/second-modal-ts-view-page.ts +++ b/app/ns-ui-category/modal-view/modal-navigation/second-modal-ts-view-page.ts @@ -1,5 +1,5 @@ // >> second-modal-view-ts-navigation -import { Page } from "tns-core-modules/ui/page"; +import { Page } from "@nativescript/core"; export function onGoBack(args) { const view = args.object; diff --git a/app/ns-ui-category/modal-view/modal-navigation/second-modal-view-page.js b/app/ns-ui-category/modal-view/modal-navigation/second-modal-view-page.js index daa6703..fc31989 100644 --- a/app/ns-ui-category/modal-view/modal-navigation/second-modal-view-page.js +++ b/app/ns-ui-category/modal-view/modal-navigation/second-modal-view-page.js @@ -1,14 +1,12 @@ // >> second-modal-view-js-navigation -function onGoBack(args) { +export function onGoBack(args) { const view = args.object; const page = view.page; page.frame.goBack(); } -exports.onGoBack = onGoBack; -function onCloseModal(args) { +export function onCloseModal(args) { args.object.closeModal(); } -exports.onCloseModal = onCloseModal; // << second-modal-view-js-navigation diff --git a/app/ns-ui-category/modal-view/modal-view-examples-page.js b/app/ns-ui-category/modal-view/modal-view-examples-page.js index ae55c16..61abc41 100644 --- a/app/ns-ui-category/modal-view/modal-view-examples-page.js +++ b/app/ns-ui-category/modal-view/modal-view-examples-page.js @@ -1,16 +1,16 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Basics", "ns-ui-category/modal-view/basics/basics-page"), - new link("Modal view navigation", "ns-ui-category/modal-view/modal-navigation/main-page"), - new link("Modal view with ActionBar", "ns-ui-category/modal-view/custom-actionbar/main-page") + new Link("Basics", "ns-ui-category/modal-view/basics/basics-page"), + new Link("Modal view navigation", "ns-ui-category/modal-view/modal-navigation/main-page"), + new Link("Modal view with ActionBar", "ns-ui-category/modal-view/custom-actionbar/main-page") ]; const navigationLinksTsc = [ - new link("Basics", "ns-ui-category/modal-view/basics/basics-ts-page"), - new link("Modal page navigation", "ns-ui-category/modal-view/modal-navigation/main-ts-page"), - new link("Modal page with ActionBar", "ns-ui-category/modal-view/custom-actionbar/main-ts-page") + new Link("Basics", "ns-ui-category/modal-view/basics/basics-ts-page"), + new Link("Modal page navigation", "ns-ui-category/modal-view/modal-navigation/main-ts-page"), + new Link("Modal page with ActionBar", "ns-ui-category/modal-view/custom-actionbar/main-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -19,4 +19,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-widgets-category/action-bar/action-bar-page.js b/app/ns-ui-widgets-category/action-bar/action-bar-page.js index 4102f04..f4a7b5d 100644 --- a/app/ns-ui-widgets-category/action-bar/action-bar-page.js +++ b/app/ns-ui-widgets-category/action-bar/action-bar-page.js @@ -1,59 +1,59 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Usage", "ns-ui-widgets-category/action-bar/usage/usage-page"), - new link( + new Link("Usage", "ns-ui-widgets-category/action-bar/usage/usage-page"), + new Link( "Code-Behind", "ns-ui-widgets-category/action-bar/code-behind/code-behind-page" ), - new link( + new Link( "Cutom title view", "ns-ui-widgets-category/action-bar/custom-title-view/custom-title-view-page" ), - new link( + new Link( "Setting app icon Android", "ns-ui-widgets-category/action-bar/setting-app-icon-android/setting-app-icon-android-page" ), - new link( + new Link( "Items", "ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-page" ), - new link( + new Link( "Hide/Show ActionBar", "ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-page" ), - new link( + new Link( "Hiding ActionItems", "ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-page" ), - new link("Styling", "ns-ui-widgets-category/action-bar/styling/styling-page"), - new link( + new Link("Styling", "ns-ui-widgets-category/action-bar/styling/styling-page"), + new Link( "Creating SideDrawer button", "ns-ui-widgets-category/action-bar/creating-sidedrawer-button/creating-sidedrawer-button-page" ) ]; const navigationLinksTsc = [ - new link("Usage", "ns-ui-widgets-category/action-bar/usage/usage-ts-page"), - new link( + new Link("Usage", "ns-ui-widgets-category/action-bar/usage/usage-ts-page"), + new Link( "Code-Behind", "ns-ui-widgets-category/action-bar/code-behind/code-behind-ts-page" ), - new link( + new Link( "Hide/Show ActionBar", "ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-ts-page" ), - new link( + new Link( "Hiding ActionItems", "ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-ts-page" ), - new link( + new Link( "Items", "ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-ts-page" ) ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -62,4 +62,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-page.js b/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-page.js index 94340dd..2b76da3 100644 --- a/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-page.js +++ b/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-page.js @@ -1,8 +1,7 @@ // >> actionbar-code-behind -const ActionBar = require("tns-core-modules/ui/action-bar").ActionBar; -const NavigationButton = require("tns-core-modules/ui/action-bar").NavigationButton; +import { ActionBar, NavigationButton, isAndroid } from "@nativescript/core"; -function onLoaded(args) { +export function onLoaded(args) { const page = args.object; const newActionBar = new ActionBar(); @@ -11,12 +10,13 @@ function onLoaded(args) { // for ios newNavigaitonButton.text = "Go Back"; // for android - newNavigaitonButton.android.systemIcon = "ic_menu_back"; + if (isAndroid) { + newNavigaitonButton.android.systemIcon = "ic_menu_back"; + } // or newNavigaitonButton.icon = "~\images\nav-image.png"; newActionBar.navigationButton = newNavigaitonButton; page.actionBar = newActionBar; page.actionBarHidden = false; } -exports.onLoaded = onLoaded; // << actionbar-code-behind diff --git a/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-ts-page.ts b/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-ts-page.ts index 6ca6133..42ff68a 100644 --- a/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-ts-page.ts +++ b/app/ns-ui-widgets-category/action-bar/code-behind/code-behind-ts-page.ts @@ -1,16 +1,14 @@ // >> actionbar-code-behind-ts -import { EventData } from "tns-core-modules/data/observable"; -import { ActionBar, NavigationButton } from "tns-core-modules/ui/action-bar"; -import { Page } from "tns-core-modules/ui/page"; +import { ActionBar, EventData, NavigationButton, Page } from "@nativescript/core"; export function onLoaded(args: EventData) { const page = args.object; const newActionBar = new ActionBar(); newActionBar.title = "Code-Behind ActionBar"; - const newNavigaitonButton = new NavigationButton(); - newNavigaitonButton.text = "Go Back"; - newActionBar.navigationButton = newNavigaitonButton; + const newNavigationButton = new NavigationButton(); + newNavigationButton.text = "Go Back"; + newActionBar.navigationButton = newNavigationButton; page.actionBar = newActionBar; page.actionBarHidden = false; diff --git a/app/ns-ui-widgets-category/action-bar/creating-sidedrawer-button/creating-sidedrawer-button-page.js b/app/ns-ui-widgets-category/action-bar/creating-sidedrawer-button/creating-sidedrawer-button-page.js index 2abfb47..a402747 100644 --- a/app/ns-ui-widgets-category/action-bar/creating-sidedrawer-button/creating-sidedrawer-button-page.js +++ b/app/ns-ui-widgets-category/action-bar/creating-sidedrawer-button/creating-sidedrawer-button-page.js @@ -1,5 +1,4 @@ -function showSideDrawer(args) { +export function showSideDrawer(args) { console.log("Show SideDrawer tapped."); // Show sidedrawer ... } -exports.showSideDrawer = showSideDrawer; diff --git a/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-page.js b/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-page.js index 53298d2..ed8e12f 100644 --- a/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-page.js +++ b/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-page.js @@ -1,20 +1,19 @@ // >> action-bar-hide-show-js -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; let value = false; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); vm.set("abHidden", value); page.bindingContext = vm; } -exports.onNavigatingTo = onNavigatingTo; -function onTap(args) { + +export function onTap(args) { const page = args.object.page; const vm = page.bindingContext; value = !value; vm.set("abHidden", value); } -exports.onTap = onTap; // << action-bar-hide-show-js diff --git a/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-ts-page.ts b/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-ts-page.ts index 92288c9..7b05640 100644 --- a/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-ts-page.ts +++ b/app/ns-ui-widgets-category/action-bar/hide-show-actionbar/hide-show-actionbar-ts-page.ts @@ -1,8 +1,5 @@ // >> action-bar-hide-show-ts -import { EventData, Observable } from "tns-core-modules/data/observable"; -import { Button } from "tns-core-modules/ui/button"; -import { Page } from "tns-core-modules/ui/page"; -import { GestureEventData } from "tns-core-modules/ui/gestures"; +import { Button, EventData, GestureEventData, Observable, Page } from "@nativescript/core"; let value: boolean = false; diff --git a/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-page.js b/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-page.js index 2fdae0b..d3ae5d8 100644 --- a/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-page.js +++ b/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-page.js @@ -1,29 +1,26 @@ // >> action-bar-hiding-action-items-js -const fromObject = require("tns-core-modules/data/observable").fromObject; +import { fromObject } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = fromObject({ isEditing: false }); } -exports.onNavigatingTo = onNavigatingTo; -function onEdit(args) { + +export function onEdit(args) { const page = args.object.page; page.bindingContext.set("isEditing", true); } -exports.onEdit = onEdit; -function onSave(args) { +export function onSave(args) { const page = args.object.page; page.bindingContext.set("isEditing", false); } -exports.onSave = onSave; -function onCancel(args) { +export function onCancel(args) { const page = args.object.page; page.bindingContext.set("isEditing", false); } -exports.onCancel = onCancel; // << action-bar-hiding-action-items-js diff --git a/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-ts-page.ts b/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-ts-page.ts index e61ee89..898d27b 100644 --- a/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-ts-page.ts +++ b/app/ns-ui-widgets-category/action-bar/hiding-action-items/hiding-action-items-ts-page.ts @@ -1,8 +1,5 @@ // >> action-bar-hiding-action-items-ts -import { EventData, fromObject } from "tns-core-modules/data/observable"; -import { ActionItem } from "tns-core-modules/ui/action-bar"; -import { Page } from "tns-core-modules/ui/page"; -import { GestureEventData } from "tns-core-modules/ui/gestures"; +import { ActionItem, EventData, GestureEventData, Page, fromObject } from "@nativescript/core"; // >> (hide) export function onNavigatingTo(args: EventData) { diff --git a/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-page.js b/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-page.js index bdbf7cf..f4d6b6f 100644 --- a/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-page.js +++ b/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-page.js @@ -1,11 +1,11 @@ // >> items-actionbar-js -const fromObject = require("tns-core-modules/data/observable").fromObject; +import { fromObject } from "@nativescript/core"; -exports.onShare = function() { +export function onShare() { console.log("share tap"); -}; +} -exports.onDelete = function() { +export function onDelete() { console.log("delete tap"); -}; +} // << items-actionbar-js diff --git a/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-ts-page.ts b/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-ts-page.ts index f1b678e..0f54aa5 100644 --- a/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-ts-page.ts +++ b/app/ns-ui-widgets-category/action-bar/items-actionbar/items-actionbar-ts-page.ts @@ -1,5 +1,5 @@ // >> items-actionbar-ts -import { GestureEventData } from "tns-core-modules/ui/gestures"; +import { GestureEventData } from "@nativescript/core"; export function onShare(args: GestureEventData) { console.log("Share tapped!"); diff --git a/app/ns-ui-widgets-category/action-bar/styling/styling-page.js b/app/ns-ui-widgets-category/action-bar/styling/styling-page.js index 2bb9b54..d910e47 100644 --- a/app/ns-ui-widgets-category/action-bar/styling/styling-page.js +++ b/app/ns-ui-widgets-category/action-bar/styling/styling-page.js @@ -1,6 +1,5 @@ -const frameModule = require("tns-core-modules/ui/frame"); +import { Frame } from "@nativescript/core"; -function goBack() { - frameModule.Frame.topmost().goBack(); +export function goBack() { + Frame.topmost().goBack(); } -exports.goBack = goBack; diff --git a/app/ns-ui-widgets-category/action-bar/usage/usage-page.js b/app/ns-ui-widgets-category/action-bar/usage/usage-page.js index 3351ab6..422777e 100644 --- a/app/ns-ui-widgets-category/action-bar/usage/usage-page.js +++ b/app/ns-ui-widgets-category/action-bar/usage/usage-page.js @@ -1,12 +1,10 @@ // >> action-bar-basic-usage-sdk-js -const frameModule = require("tns-core-modules/ui/frame"); +import { Frame } from "@nativescript/core"; -function goBack() { - frameModule.Frame.topmost().goBack(); +export function goBack() { + Frame.topmost().goBack(); } -function openSettings() { +export function openSettings() { // implement the custom logic } -exports.goBack = goBack; -exports.openSettings = openSettings; // << action-bar-basic-usage-sdk-js diff --git a/app/ns-ui-widgets-category/action-bar/usage/usage-ts-page.ts b/app/ns-ui-widgets-category/action-bar/usage/usage-ts-page.ts index 31c382e..6d8a602 100644 --- a/app/ns-ui-widgets-category/action-bar/usage/usage-ts-page.ts +++ b/app/ns-ui-widgets-category/action-bar/usage/usage-ts-page.ts @@ -1,5 +1,5 @@ // >> action-bar-basic-usage-sdk-ts -import { Frame } from "tns-core-modules/ui/frame"; +import { Frame } from "@nativescript/core"; export function goBack() { Frame.topmost().goBack(); diff --git a/app/ns-ui-widgets-category/activity-indicator/activity-indicator-page.js b/app/ns-ui-widgets-category/activity-indicator/activity-indicator-page.js index 0a9610c..3b51a20 100644 --- a/app/ns-ui-widgets-category/activity-indicator/activity-indicator-page.js +++ b/app/ns-ui-widgets-category/activity-indicator/activity-indicator-page.js @@ -1,34 +1,34 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link( + new Link( "Usage", "ns-ui-widgets-category/activity-indicator/usage/usage-page" ), - new link( + new Link( "Code-Behind", "ns-ui-widgets-category/activity-indicator/code-behind/code-behind-page" ), - new link("Tips & Tricks", "ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-page"), - new link( + new Link("Tips & Tricks", "ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-page"), + new Link( "Styling", "ns-ui-widgets-category/activity-indicator/styling/styling-page" ) ]; const navigationLinksTsc = [ - new link( + new Link( "Usage", "ns-ui-widgets-category/activity-indicator/usage/usage-ts-page" ), - new link( + new Link( "Code-Behind", "ns-ui-widgets-category/activity-indicator/code-behind/code-behind-ts-page" ), - new link("Tips & Tricks", "ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-ts-page") + new Link("Tips & Tricks", "ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-ts-page") ]; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -37,4 +37,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-page.js b/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-page.js index ff17004..accb1e1 100644 --- a/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-page.js +++ b/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-page.js @@ -1,8 +1,8 @@ // >> activity-indicator-require -const ActivityIndicator = require("tns-core-modules/ui/activity-indicator").ActivityIndicator; +import { ActivityIndicator } from "@nativescript/core"; // << activity-indicator-require -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const myStack = page.getViewById("myStack"); @@ -20,4 +20,4 @@ function onNavigatingTo(args) { myStack.addChild(indicator); // << activity-indicator-code-behind } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-ts-page.ts b/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-ts-page.ts index 33a11d3..f2248cf 100644 --- a/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-ts-page.ts +++ b/app/ns-ui-widgets-category/activity-indicator/code-behind/code-behind-ts-page.ts @@ -1,9 +1,7 @@ // >> activity-indicator-require-ts -import { ActivityIndicator } from "tns-core-modules/ui/activity-indicator"; +import { ActivityIndicator } from "@nativescript/core"; // << activity-indicator-require-ts -import { EventData } from "tns-core-modules/data/observable"; -import { StackLayout } from "tns-core-modules/ui/layouts/stack-layout"; -import { Page } from "tns-core-modules/ui/page"; +import { EventData, Page, StackLayout } from "@nativescript/core"; export function onNavigatingTo(args: EventData) { const page = args.object; diff --git a/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-page.js b/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-page.js index b7cba2b..165081e 100644 --- a/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-page.js +++ b/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-page.js @@ -1,7 +1,7 @@ // >> large-ios-indicator -const isIOS = require("tns-core-modules/platform").isIOS; +import { isIOS } from "@nativescript/core"; -function onLoaded(args) { +export function onLoaded(args) { const view = args.object; if (isIOS) { @@ -10,5 +10,4 @@ function onLoaded(args) { } } -exports.onLoaded = onLoaded; // << large-ios-indicator diff --git a/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-ts-page.ts b/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-ts-page.ts index 41a66f8..b630638 100644 --- a/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-ts-page.ts +++ b/app/ns-ui-widgets-category/activity-indicator/tips-and-tricks/tips-and-tricks-ts-page.ts @@ -1,6 +1,5 @@ // >> large-ios-indicator-ts -import { isIOS } from "tns-core-modules/platform"; -import {ActivityIndicator} from "tns-core-modules/ui/activity-indicator"; +import { ActivityIndicator, isIOS } from "@nativescript/core"; export function onLoaded(args) { const view = args.object as ActivityIndicator; diff --git a/app/ns-ui-widgets-category/activity-indicator/usage/usage-page.js b/app/ns-ui-widgets-category/activity-indicator/usage/usage-page.js index 5375dae..15240d5 100644 --- a/app/ns-ui-widgets-category/activity-indicator/usage/usage-page.js +++ b/app/ns-ui-widgets-category/activity-indicator/usage/usage-page.js @@ -1,22 +1,19 @@ // >> activity-indicator-setting-busy-code -const Observable = require("tns-core-modules/data/observable").Observable; +import { Observable } from "@nativescript/core"; -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; const vm = new Observable(); vm.set("isBusy", true); page.bindingContext = vm; } -exports.onNavigatingTo = onNavigatingTo; - -function indicatorLoaded(args) { +export function indicatorLoaded(args) { const activityIndicator = args.object; activityIndicator.on("busyChange", (aiargs) => { const indicator = aiargs.object; console.log(`indicator.busy changed to: ${indicator.busy}`); }); } -exports.indicatorLoaded = indicatorLoaded; // << activity-indicator-setting-busy-code diff --git a/app/ns-ui-widgets-category/activity-indicator/usage/usage-ts-page.ts b/app/ns-ui-widgets-category/activity-indicator/usage/usage-ts-page.ts index c89060b..e12c5b7 100644 --- a/app/ns-ui-widgets-category/activity-indicator/usage/usage-ts-page.ts +++ b/app/ns-ui-widgets-category/activity-indicator/usage/usage-ts-page.ts @@ -1,7 +1,5 @@ // >> activity-indicator-setting-busy-code-ts -import { EventData, Observable } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; -import { ActivityIndicator } from "tns-core-modules/ui/activity-indicator"; +import { ActivityIndicator, EventData, Observable, Page } from "@nativescript/core"; export function onNavigatingTo(args: EventData) { const view = args.object as Page; diff --git a/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-page.js b/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-page.js index 0afd3f3..474e2dc 100644 --- a/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-page.js +++ b/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-page.js @@ -1,19 +1,17 @@ // >> animation-curve-imports // AnimationCurveEnum: ease, easeIn, easeInOut, easeOut, linear, spring -const AnimationCurve = require("tns-core-modules/ui/enums").AnimationCurve; +import { AnimationCurve } from "@nativescript/core/ui/enums"; +import { Animation, Color } from "@nativescript/core"; // << animation-curve-imports -const Animation = require("tns-core-modules/ui/animation").Animation; -const Color = require("tns-core-modules/color").Color; let animation; let myView; -function onLoaded(args) { +export function onLoaded(args) { const page = args.object; myView = page.getViewById("lbl"); } -exports.onLoaded = onLoaded; -function animate(args) { +export function animate(args) { // >> animation-properties myView.animate({ backgroundColor: new Color("#414b7d"), @@ -38,9 +36,8 @@ function animate(args) { }); // << animation-properties } -exports.animate = animate; -function animateTarget(args) { +export function animateTarget(args) { // >> animation-target const myView = args.object; @@ -68,7 +65,6 @@ function animateTarget(args) { }); // << animation-target } -exports.animateTarget = animateTarget; function cancelAnimation() { // >> animation-cancel diff --git a/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-ts-page.ts b/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-ts-page.ts index fc0946e..20f837a 100644 --- a/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-ts-page.ts +++ b/app/ns-ui-widgets-category/animations/animating-properties/animating-properties-ts-page.ts @@ -1,10 +1,8 @@ // >> animation-curve-imports-ts // AnimationCurve enumeration: ease, easeIn, easeInOut, easeOut, linear, spring -import { AnimationCurve } from "tns-core-modules/ui/enums"; -import { Animation, AnimationDefinition } from "tns-core-modules/ui/animation"; -import { Color } from "tns-core-modules/color"; +import { Animation, AnimationDefinition, Color, Enums } from "@nativescript/core"; // << animation-curve-imports-ts -import { View } from "tns-core-modules/ui/core/view"; +import { View } from "@nativescript/core"; let animation: Animation; export function animate(args) { @@ -15,7 +13,7 @@ export function animate(args) { // >> animation-properties-ts view.animate({ backgroundColor: new Color("#414b7d"), - curve: AnimationCurve.easeOut, + curve: Enums.AnimationCurve.easeOut, delay: 300, duration: 3000, iterations: 3, @@ -43,7 +41,7 @@ export function animateTarget(args) { const animationDefinition: AnimationDefinition = { target: view, // provide the view to animate - curve: AnimationCurve.easeOut, + curve: Enums.AnimationCurve.easeOut, duration: 1000, scale: { x: 0.2, @@ -89,7 +87,7 @@ export function demonstrateSimpleAnimations(args) { y: 100 }, duration: 1000, - curve: AnimationCurve.easeIn + curve: Enums.AnimationCurve.easeIn }); // << using-animation-curve-enum-ts @@ -100,7 +98,7 @@ export function demonstrateSimpleAnimations(args) { y: 100 }, duration: 1000, - curve: AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1) + curve: Enums.AnimationCurve.cubicBezier(0.1, 0.1, 0.1, 1) }); // << creating-cubic-bezier-ts } diff --git a/app/ns-ui-widgets-category/animations/animations-page.js b/app/ns-ui-widgets-category/animations/animations-page.js index 08d3d24..2dcc63a 100644 --- a/app/ns-ui-widgets-category/animations/animations-page.js +++ b/app/ns-ui-widgets-category/animations/animations-page.js @@ -1,30 +1,30 @@ -const ListViewLinksModel = require("../../links-view-model"); -const link = require("../../link"); +import ListViewLinksModel from "../../links-view-model"; +import Link from "../../link"; const navigationLinks = [ - new link("Animated Properties", "ns-ui-widgets-category/animations/animating-properties/animating-properties-page"), - new link("Chained Animations", "ns-ui-widgets-category/animations/chaining-animations/chaining-animations-page"), - new link("Animating Multiple Views", "ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-page"), - new link("Properties originX and originY", "ns-ui-widgets-category/animations/origin-properties/property-origin-page"), - new link("Properties width and height", "ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page") + new Link("Animated Properties", "ns-ui-widgets-category/animations/animating-properties/animating-properties-page"), + new Link("Chained Animations", "ns-ui-widgets-category/animations/chaining-animations/chaining-animations-page"), + new Link("Animating Multiple Views", "ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-page"), + new Link("Properties originX and originY", "ns-ui-widgets-category/animations/origin-properties/property-origin-page"), + new Link("Properties width and height", "ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page") ]; const navigationLinksTsc = [ - new link("Animated Properties", "ns-ui-widgets-category/animations/animating-properties/animating-properties-ts-page"), - new link("Chained Animations", "ns-ui-widgets-category/animations/chaining-animations/chaining-animations-ts-page"), - new link("Animating Multiple Views", "ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-ts-page"), - new link("Properties originX and originY", "ns-ui-widgets-category/animations/origin-properties/property-origin-ts-page"), - new link("Properties width and height", "ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page") + new Link("Animated Properties", "ns-ui-widgets-category/animations/animating-properties/animating-properties-ts-page"), + new Link("Chained Animations", "ns-ui-widgets-category/animations/chaining-animations/chaining-animations-ts-page"), + new Link("Animating Multiple Views", "ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-ts-page"), + new Link("Properties originX and originY", "ns-ui-widgets-category/animations/origin-properties/property-origin-ts-page"), + new Link("Properties width and height", "ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page") ]; // >> animations-imports // Full list of animating properties at https://docs.nativescript.org/api-reference/interfaces/_ui_animation_.animationdefinition -const AnimationDefinition = require("tns-core-modules/ui/animation").AnimationDefinition; +import { AnimationDefinition } from "@nativescript/core"; // Defines a pair of values (horizontal and vertical) for translate and scale animations. -const Pair = require("tns-core-modules/ui/animation").Pair; +import Pair from "@nativescript/core/ui/animation"; // << animations-imports -function onNavigatingTo(args) { +export function onNavigatingTo(args) { const page = args.object; page.bindingContext = new ListViewLinksModel({ links: navigationLinks, @@ -33,4 +33,4 @@ function onNavigatingTo(args) { tsclinks: navigationLinksTsc }); } -exports.onNavigatingTo = onNavigatingTo; + diff --git a/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-page.js b/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-page.js index f2295d5..c2a2aba 100644 --- a/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-page.js +++ b/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-page.js @@ -1,6 +1,6 @@ let myView; -function onLoaded(args) { +export function onLoaded(args) { const page = args.object; myView = page.getViewById("lbl"); // >> chaining-animations @@ -50,4 +50,3 @@ function onLoaded(args) { }); // << chaining-animations } -exports.onLoaded = onLoaded; diff --git a/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-ts-page.ts b/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-ts-page.ts index 1bb44fa..c053899 100644 --- a/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-ts-page.ts +++ b/app/ns-ui-widgets-category/animations/chaining-animations/chaining-animations-ts-page.ts @@ -1,6 +1,4 @@ -import { EventData } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; -import { Label } from "tns-core-modules/ui/label"; +import { EventData, Label, Page } from "@nativescript/core"; export function onLoaded(args: EventData) { const page = args.object; diff --git a/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-page.js b/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-page.js index e268ebb..7c91647 100644 --- a/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-page.js +++ b/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-page.js @@ -1,13 +1,13 @@ // >> animation-import // Main Animation class -const Animation = require("tns-core-modules/ui/animation").Animation; +import { Animation } from "@nativescript/core"; // << animation-import let view1; let view2; let view3; let view4; -function onLoaded(args) { +export function onLoaded(args) { const page = args.object; view1 = page.getViewById("view1"); @@ -15,9 +15,8 @@ function onLoaded(args) { view3 = page.getViewById("view3"); view4 = page.getViewById("view4"); } -exports.onLoaded = onLoaded; -function animate() { +export function animate() { // >> animate-multiple-views const definitions = []; @@ -72,9 +71,8 @@ function animate() { // << animate-multiple-views } -exports.animate = animate; -function reset() { +export function reset() { view1.translateX = 0; view1.translateY = 0; view2.translateX = 0; @@ -84,4 +82,3 @@ function reset() { view4.translateX = 0; view4.translateY = 0; } -exports.reset = reset; diff --git a/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-ts-page.ts b/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-ts-page.ts index 7509af8..e020a8e 100644 --- a/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-ts-page.ts +++ b/app/ns-ui-widgets-category/animations/multiple-views-animation/multiple-views-ts-page.ts @@ -1,11 +1,7 @@ // >> animation-import-ts // Main Animation class // ALL animating properties at https://docs.nativescript.org/api-reference/interfaces/_ui_animation_.animationdefinition -import { - Animation, - AnimationDefinition, - Pair // Pair: Defines a pair of values (horizontal and vertical) for translate and scale animations. -} from "tns-core-modules/ui/animation"; +import { Animation, AnimationDefinition } from "@nativescript/core"; // << animation-import-ts let view1, view2, view3, view4; diff --git a/app/ns-ui-widgets-category/animations/origin-properties/property-origin-page.js b/app/ns-ui-widgets-category/animations/origin-properties/property-origin-page.js index f919b01..a2e9281 100644 --- a/app/ns-ui-widgets-category/animations/origin-properties/property-origin-page.js +++ b/app/ns-ui-widgets-category/animations/origin-properties/property-origin-page.js @@ -1,7 +1,11 @@ -const AnimationCurveEnum = require("tns-core-modules/ui/enums").AnimationCurve; -let myView; +import { AnimationCurve } from "@nativescript/core/ui/enums"; +let myFirstView; +let mySecondView; +let myThirdView; +let myForthView; +let myFifthView; -function onLoaded(args) { +export function onLoaded(args) { const page = args.object; myFirstView = page.getViewById("myFirstView"); mySecondView = page.getViewById("mySecondView"); @@ -9,9 +13,8 @@ function onLoaded(args) { myForthView = page.getViewById("myForthView"); myFifthView = page.getViewById("myFifthView"); } -exports.onLoaded = onLoaded; // >> rotating-example -function animate() { +export function animate() { // myFirstView.originX = 0.5; // Default value (center of the view's horizontal axis) // myFirstView.originY = 0.5; // Default value (middle of the view's vertical axis) myFirstView.animate({ @@ -63,5 +66,4 @@ function animate() { console.log(e.message); }); } -exports.animate = animate; // << rotating-example diff --git a/app/ns-ui-widgets-category/animations/origin-properties/property-origin-ts-page.ts b/app/ns-ui-widgets-category/animations/origin-properties/property-origin-ts-page.ts index e177944..6852afd 100644 --- a/app/ns-ui-widgets-category/animations/origin-properties/property-origin-ts-page.ts +++ b/app/ns-ui-widgets-category/animations/origin-properties/property-origin-ts-page.ts @@ -1,6 +1,9 @@ -import { EventData } from "tns-core-modules/data/observable"; -import { Page } from "tns-core-modules/ui/page"; -let myFirstView, mySecondView, myThirdView, myForthView, myFifthView; +import { EventData, Page } from "@nativescript/core"; +let myFirstView; +let mySecondView; +let myThirdView; +let myForthView; +let myFifthView; export function onLoaded(args: EventData) { const page = args.object; diff --git a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.js b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.js index f15bf8e..6c02887 100644 --- a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.js +++ b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.js @@ -1,7 +1,7 @@ // >> animation-properties-width-height -const AnimationCurve = require("tns-core-modules/ui/enums").AnimationCurve; +import { AnimationCurve } from "@nativescript/core/ui/enums"; -function animateWidth(args) { +export function animateWidth(args) { const button = args.object; const page = button.page; const myView = page.getViewById("lbl"); @@ -12,9 +12,8 @@ function animateWidth(args) { curve: AnimationCurve.easeIn }); } -exports.animateWidth = animateWidth; -function animateHeight(args) { +export function animateHeight(args) { const button = args.object; const page = button.page; const myView = page.getViewById("lbl"); @@ -25,5 +24,4 @@ function animateHeight(args) { curve: AnimationCurve.easeIn }); } -exports.animateHeight = animateHeight; // << animation-properties-width-height diff --git a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.xml b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.xml index d2d6102..c31498d 100644 --- a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.xml +++ b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-page.xml @@ -1,6 +1,6 @@ - + diff --git a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.ts b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.ts index 8cc1e74..671391d 100644 --- a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.ts +++ b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.ts @@ -1,6 +1,5 @@ // >> animation-properties-width-height-ts -import { AnimationCurve } from "tns-core-modules/ui/enums"; -import { View } from "tns-core-modules/ui/core/view"; +import { Enums, View } from "@nativescript/core"; export function animateWidth(args) { let button = args.object; @@ -10,7 +9,7 @@ export function animateWidth(args) { view.animate({ width: 320, duration: 1000, - curve: AnimationCurve.easeIn + curve: Enums.AnimationCurve.easeIn }); } @@ -22,7 +21,7 @@ export function animateHeight(args) { view.animate({ height: 400, duration: 1000, - curve: AnimationCurve.easeIn + curve: Enums.AnimationCurve.easeIn }); } // << animation-properties-width-height-ts diff --git a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.xml b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.xml index e4802fa..9ff50f4 100644 --- a/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.xml +++ b/app/ns-ui-widgets-category/animations/width-height-properties/width-height-properties-ts-page.xml @@ -1,10 +1,10 @@ - +