├── app
├── fonts
│ └── .gitkeep
├── components
│ ├── index.js
│ └── ItemList.vue
├── assets
│ └── images
│ │ ├── 0.jpg
│ │ ├── 1.jpg
│ │ ├── 2.jpg
│ │ ├── 3.jpg
│ │ ├── 4.jpg
│ │ ├── 5.jpg
│ │ ├── pulled.jpg
│ │ └── NativeScript-Vue.png
├── App_Resources
│ ├── iOS
│ │ ├── Assets.xcassets
│ │ │ ├── Contents.json
│ │ │ ├── AppIcon.appiconset
│ │ │ │ ├── icon-29.png
│ │ │ │ ├── icon-40.png
│ │ │ │ ├── icon-76.png
│ │ │ │ ├── icon-1024.png
│ │ │ │ ├── icon-29@2x.png
│ │ │ │ ├── icon-29@3x.png
│ │ │ │ ├── icon-40@2x.png
│ │ │ │ ├── icon-40@3x.png
│ │ │ │ ├── icon-60@2x.png
│ │ │ │ ├── icon-60@3x.png
│ │ │ │ ├── icon-76@2x.png
│ │ │ │ ├── icon-83.5@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── LaunchImage.launchimage
│ │ │ │ ├── Default.png
│ │ │ │ ├── Default@2x.png
│ │ │ │ ├── Default-1125h.png
│ │ │ │ ├── Default-568h@2x.png
│ │ │ │ ├── Default-667h@2x.png
│ │ │ │ ├── Default-736h@3x.png
│ │ │ │ ├── Default-Landscape.png
│ │ │ │ ├── Default-Portrait.png
│ │ │ │ ├── Default-Landscape-X.png
│ │ │ │ ├── Default-Landscape@2x.png
│ │ │ │ ├── Default-Landscape@3x.png
│ │ │ │ ├── Default-Portrait@2x.png
│ │ │ │ └── Contents.json
│ │ │ ├── LaunchScreen.Center.imageset
│ │ │ │ ├── LaunchScreen-Center.png
│ │ │ │ ├── LaunchScreen-Center@2x.png
│ │ │ │ └── Contents.json
│ │ │ └── LaunchScreen.AspectFill.imageset
│ │ │ │ ├── LaunchScreen-AspectFill.png
│ │ │ │ ├── LaunchScreen-AspectFill@2x.png
│ │ │ │ └── Contents.json
│ │ ├── ic_menu@1x.png
│ │ ├── ic_menu@2x.png
│ │ ├── ic_menu@3x.png
│ │ ├── build.xcconfig
│ │ ├── Info.plist
│ │ └── LaunchScreen.storyboard
│ └── Android
│ │ ├── src
│ │ └── main
│ │ │ ├── res
│ │ │ ├── values-v21
│ │ │ │ ├── colors.xml
│ │ │ │ ├── strings.xml
│ │ │ │ └── styles.xml
│ │ │ ├── drawable-hdpi
│ │ │ │ ├── icon.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_menu.png
│ │ │ │ └── background.png
│ │ │ ├── drawable-ldpi
│ │ │ │ ├── icon.png
│ │ │ │ ├── logo.png
│ │ │ │ └── background.png
│ │ │ ├── drawable-mdpi
│ │ │ │ ├── icon.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_menu.png
│ │ │ │ └── background.png
│ │ │ ├── drawable-xhdpi
│ │ │ │ ├── icon.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_menu.png
│ │ │ │ └── background.png
│ │ │ ├── drawable-xxhdpi
│ │ │ │ ├── icon.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_menu.png
│ │ │ │ └── background.png
│ │ │ ├── drawable-xxxhdpi
│ │ │ │ ├── icon.png
│ │ │ │ ├── logo.png
│ │ │ │ ├── ic_menu.png
│ │ │ │ └── background.png
│ │ │ ├── values
│ │ │ │ ├── strings.xml
│ │ │ │ ├── colors.xml
│ │ │ │ └── styles.xml
│ │ │ └── drawable-nodpi
│ │ │ │ └── splash_screen.xml
│ │ │ └── AndroidManifest.xml
│ │ └── app.gradle
├── package.json
├── views
│ ├── index.js
│ ├── Home.vue
│ ├── Chart.vue
│ ├── List.vue
│ ├── Calendar.vue
│ ├── Root.vue
│ └── DataForm.vue
├── main.js
├── styles.scss
└── data.js
├── babel.config.js
├── vue-hot-reload-api-patcher.js
├── README.md
├── package.json
└── webpack.config.js
/app/fonts/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/app/components/index.js:
--------------------------------------------------------------------------------
1 | export { default as ItemList } from './ItemList'
2 |
--------------------------------------------------------------------------------
/app/assets/images/0.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/0.jpg
--------------------------------------------------------------------------------
/app/assets/images/1.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/1.jpg
--------------------------------------------------------------------------------
/app/assets/images/2.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/2.jpg
--------------------------------------------------------------------------------
/app/assets/images/3.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/3.jpg
--------------------------------------------------------------------------------
/app/assets/images/4.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/4.jpg
--------------------------------------------------------------------------------
/app/assets/images/5.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/5.jpg
--------------------------------------------------------------------------------
/app/assets/images/pulled.jpg:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/pulled.jpg
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "info" : {
3 | "version" : 1,
4 | "author" : "xcode"
5 | }
6 | }
--------------------------------------------------------------------------------
/app/App_Resources/iOS/ic_menu@1x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/ic_menu@1x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/ic_menu@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/ic_menu@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/ic_menu@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/ic_menu@3x.png
--------------------------------------------------------------------------------
/app/assets/images/NativeScript-Vue.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/assets/images/NativeScript-Vue.png
--------------------------------------------------------------------------------
/app/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "android": {
3 | "v8Flags": "--expose_gc"
4 | },
5 | "main": "main",
6 | "name": "ns-ui-vue-demo",
7 | "version": "1.0.0"
8 | }
9 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/values-v21/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #3d5afe
4 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 | module.exports = function (api) {
2 | api.cache(true)
3 |
4 | return {
5 | presets: [['@babel/env', { targets: { esmodules: true } }]],
6 | }
7 | }
8 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/icon.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/logo.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-ldpi/icon.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-ldpi/logo.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/icon.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/logo.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-hdpi/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/ic_menu.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-mdpi/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/ic_menu.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/icon.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/logo.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/icon.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/logo.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/icon.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/logo.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/ic_menu.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/ic_menu.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-hdpi/background.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-ldpi/background.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-mdpi/background.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xhdpi/background.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxhdpi/background.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_menu.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/ic_menu.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/Android/src/main/res/drawable-xxxhdpi/background.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-1024.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-29@3x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-40@3x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-60@3x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-76@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/icon-83.5@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-1125h.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-568h@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-667h@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-736h@3x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait.png
--------------------------------------------------------------------------------
/vue-hot-reload-api-patcher.js:
--------------------------------------------------------------------------------
1 | // TODO: Removed the file once https://github.com/vuejs/vue-hot-reload-api/pull/70 is accepted
2 | module.exports = function (source) {
3 | return `var window = {};
4 | ${source};`;
5 | };
6 |
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape-X.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Landscape@3x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Default-Portrait@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/LaunchScreen-Center@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill.png
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/msaelices/ns-ui-vue-demo/HEAD/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/LaunchScreen-AspectFill@2x.png
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/values/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | NativeScript UI Vue Demo App
4 | NativeScript UI Vue Demo App
5 |
6 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/values-v21/strings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | NativeScript UI Vue Demo App
4 | NativeScript UI Vue Demo App
5 |
6 |
--------------------------------------------------------------------------------
/app/views/index.js:
--------------------------------------------------------------------------------
1 | export { default as Calendar } from './Calendar'
2 | export { default as Chart } from './Chart'
3 | export { default as DataForm } from './DataForm'
4 | export { default as Home } from './Home'
5 | export { default as List } from './List'
6 | export { default as Root } from './Root'
7 |
8 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/values/colors.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 | #F5F5F5
4 | #757575
5 | #33B5E5
6 | #272734
7 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/app.gradle:
--------------------------------------------------------------------------------
1 | // Add your native dependencies here:
2 |
3 | android {
4 | defaultConfig {
5 | generatedDensities = []
6 | applicationId = "org.nativescript.application"
7 | }
8 | aaptOptions {
9 | additionalParameters "--no-version-vectors"
10 | }
11 | }
12 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/drawable-nodpi/splash_screen.xml:
--------------------------------------------------------------------------------
1 |
2 | -
3 |
4 |
5 | -
6 |
7 |
8 |
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.Center.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchScreen-Center.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchScreen-Center@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchScreen.AspectFill.imageset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "idiom" : "universal",
5 | "filename" : "LaunchScreen-AspectFill.png",
6 | "scale" : "1x"
7 | },
8 | {
9 | "idiom" : "universal",
10 | "filename" : "LaunchScreen-AspectFill@2x.png",
11 | "scale" : "2x"
12 | },
13 | {
14 | "idiom" : "universal",
15 | "scale" : "3x"
16 | }
17 | ],
18 | "info" : {
19 | "version" : 1,
20 | "author" : "xcode"
21 | }
22 | }
--------------------------------------------------------------------------------
/app/App_Resources/iOS/build.xcconfig:
--------------------------------------------------------------------------------
1 | // You can add custom settings here
2 | // for example you can uncomment the following line to force distribution code signing
3 | // CODE_SIGN_IDENTITY = iPhone Distribution
4 | // To build for device with Xcode 8 you need to specify your development team. More info: https://developer.apple.com/library/prerelease/content/releasenotes/DeveloperTools/RN-Xcode/Introduction.html
5 | // DEVELOPMENT_TEAM = YOUR_TEAM_ID;
6 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
7 | ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
8 |
9 | DEVELOPMENT_TEAM = RXT9WNH555
10 |
--------------------------------------------------------------------------------
/app/views/Home.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
26 |
27 |
29 |
--------------------------------------------------------------------------------
/app/views/Chart.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
32 |
33 |
35 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/values-v21/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
9 |
10 |
11 |
14 |
15 |
16 |
19 |
20 |
23 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # NativeScript UI Vue Demo App
2 |
3 | > NativeScript UI Vue Demo App
4 |
5 | ## Usage
6 |
7 | ``` bash
8 | # Install dependencies
9 | npm install
10 |
11 | # Build for production
12 | tns build --bundle
13 |
14 | # Build, watch for changes and debug the application
15 | tns debug --bundle
16 |
17 | # Build, watch for changes and run the application
18 | tns run --bundle
19 | ```
20 |
21 | ## Screencast
22 |
23 | 
24 |
25 |
26 | ## Using Vue Devtools
27 |
28 | Vue DevTools will be installed locally when you execute `npm install`, but if you'd like to easily access Vue Devtools, you can install it globally:
29 |
30 | ``` bash
31 | npm install -g @vue/devtools@beta
32 | ```
33 |
34 | Before running the app, it needs to have started the Vue Devtools:
35 |
36 | ``` bash
37 | # if installed globally
38 | vue-devtools
39 | # or
40 | npx vue-devtools
41 | ```
42 |
43 | Now you can run the app and you should see the component tree.
44 |
--------------------------------------------------------------------------------
/app/main.js:
--------------------------------------------------------------------------------
1 | import Vue from 'nativescript-vue'
2 | import VueDevtools from 'nativescript-vue-devtools'
3 | import RadListView from 'nativescript-ui-listview/vue'
4 | import RadCalendar from 'nativescript-ui-calendar/vue'
5 | import RadDataForm from 'nativescript-ui-dataform/vue'
6 | import RadChart from 'nativescript-ui-chart/vue'
7 | import RadSideDrawer from 'nativescript-ui-sidedrawer/vue'
8 |
9 | Vue.use(VueDevtools)
10 | Vue.use(RadListView)
11 | Vue.use(RadCalendar)
12 | Vue.use(RadChart)
13 | Vue.use(RadDataForm)
14 |
15 | import * as comps from './components'
16 | import * as views from './views'
17 |
18 | import './styles.scss'
19 |
20 | const appComponents = [
21 | comps.ItemList,
22 | views.Calendar,
23 | views.Chart,
24 | views.DataForm,
25 | views.Home,
26 | views.List,
27 | views.Root
28 | ]
29 |
30 | // Bind own components
31 | for (let c of appComponents) {
32 | Vue.component(c.name, c)
33 | }
34 |
35 | // Prints Vue logs when --env.production is *NOT* set while building
36 | Vue.config.silent = (TNS_ENV === 'production')
37 |
38 | new Vue({
39 | render: h => h(views.Root),
40 | }).$start()
41 |
--------------------------------------------------------------------------------
/app/styles.scss:
--------------------------------------------------------------------------------
1 | // NativeScript core theme
2 | // @see https://docs.nativescript.org/ui/theme
3 | @import '~nativescript-theme-core/scss/light';
4 |
5 | // Override variables here
6 | $secondary: #787e85;
7 | $red: #df2c45;
8 | $green: #53ba82;
9 | $grey: #eeeeee;
10 | $disabled: #787e85;
11 | $headings-color: $primary;
12 |
13 | @import '~nativescript-theme-core/scss/index';
14 |
15 | // Global SCSS styling
16 | // @see https://docs.nativescript.org/ui/styling
17 |
18 | .page {
19 | align-items: center;
20 | flex-direction: column;
21 | }
22 |
23 | .action-bar {
24 | height: 50;
25 | }
26 |
27 | .item {
28 | padding: 10;
29 | background-color: white;
30 | border-color: $grey;
31 | border-bottom-width: 1;
32 | border-bottom-style: solid;
33 | }
34 |
35 | .big {
36 | font-size: 20;
37 | }
38 |
39 | .thumbnail {
40 | margin-right: 10;
41 | }
42 |
43 | .swipe-item {
44 | color: white;
45 | padding: 16;
46 | }
47 |
48 | .swipe-item.left {
49 | background-color: #240774;
50 | }
51 |
52 | .swipe-item.right {
53 | background-color: #79000a;
54 | }
55 |
56 | .drawer {
57 | padding: 10;
58 | background-color: #333366;
59 | }
60 |
61 | .sideLogo {
62 | margin-bottom: 10;
63 | }
64 |
65 | .sideLabel {
66 | padding: 10;
67 | }
68 |
69 | .sideLightGrayLabel {
70 | background-color: $grey;
71 | }
72 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/AndroidManifest.xml:
--------------------------------------------------------------------------------
1 |
2 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
--------------------------------------------------------------------------------
/app/views/List.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
16 |
17 |
18 |
19 |
20 |
21 |
60 |
61 |
63 |
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Info.plist:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | CFBundleDevelopmentRegion
6 | en
7 | CFBundleDisplayName
8 | NativeScript UI Vue Demo App
9 | CFBundleExecutable
10 | ${EXECUTABLE_NAME}
11 | CFBundleInfoDictionaryVersion
12 | 6.0
13 | CFBundleName
14 | ${PRODUCT_NAME}
15 | CFBundlePackageType
16 | APPL
17 | CFBundleShortVersionString
18 | 1.0.0
19 | CFBundleSignature
20 | ????
21 | CFBundleVersion
22 | 1.0.0
23 | LSRequiresIPhoneOS
24 |
25 | UILaunchStoryboardName
26 | LaunchScreen
27 | UIRequiresFullScreen
28 |
29 | UIRequiredDeviceCapabilities
30 |
31 | armv7
32 |
33 | UISupportedInterfaceOrientations
34 |
35 | UIInterfaceOrientationPortrait
36 | UIInterfaceOrientationLandscapeLeft
37 | UIInterfaceOrientationLandscapeRight
38 |
39 | UISupportedInterfaceOrientations~ipad
40 |
41 | UIInterfaceOrientationPortrait
42 | UIInterfaceOrientationPortraitUpsideDown
43 | UIInterfaceOrientationLandscapeLeft
44 | UIInterfaceOrientationLandscapeRight
45 |
46 |
47 |
48 |
--------------------------------------------------------------------------------
/app/views/Calendar.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
18 |
19 |
20 |
21 |
22 |
54 |
55 |
57 |
--------------------------------------------------------------------------------
/app/views/Root.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
7 |
9 |
10 |
13 |
16 |
19 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
58 |
59 |
61 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "ns-ui-vue-demo",
3 | "version": "1.0.0",
4 | "description": "NativeScript UI Vue Demo App",
5 | "author": "msaelices ",
6 | "license": "MIT",
7 | "nativescript": {
8 | "id": "org.nativescript.application",
9 | "tns-ios": {
10 | "version": "5.0.0"
11 | },
12 | "tns-android": {
13 | "version": "5.0.0"
14 | }
15 | },
16 | "dependencies": {
17 | "@vue/devtools": "^5.0.0-beta.3",
18 | "nativescript-socket.io": "^0.9.0",
19 | "nativescript-theme-core": "^1.0.4",
20 | "nativescript-toast": "^1.4.6",
21 | "nativescript-ui-calendar": "^3.10.0",
22 | "nativescript-ui-chart": "^3.11.1",
23 | "nativescript-ui-dataform": "^3.9.1",
24 | "nativescript-ui-listview": "^5.0.0",
25 | "nativescript-ui-sidedrawer": "^4.3.0",
26 | "nativescript-vue": "^2.0.2",
27 | "nativescript-vue-devtools": "^1.0.0",
28 | "tns-core-modules": "^5.0.5"
29 | },
30 | "devDependencies": {
31 | "@babel/core": "^7.0.0",
32 | "@babel/preset-env": "^7.0.0",
33 | "babel-loader": "^8.0.2",
34 | "babel-traverse": "6.26.0",
35 | "babel-types": "6.26.0",
36 | "babylon": "6.18.0",
37 | "clean-webpack-plugin": "^0.1.19",
38 | "copy-webpack-plugin": "^4.5.2",
39 | "css-hot-loader": "^1.4.2",
40 | "css-loader": "^1.0.0",
41 | "lazy": "1.0.11",
42 | "mini-css-extract-plugin": "^0.4.1",
43 | "nativescript-dev-webpack": "^0.17.0-2018-09-12-01",
44 | "nativescript-vue-template-compiler": "^2.0.0-alpha.3",
45 | "nativescript-worker-loader": "~0.9.0",
46 | "node-sass": "^4.11.0",
47 | "sass-loader": "^7.1.0",
48 | "uglifyjs-webpack-plugin": "~1.2.7",
49 | "vue-loader": "^15.2.6",
50 | "webpack": "^4.16.4",
51 | "webpack-bundle-analyzer": "~2.13.1",
52 | "webpack-cli": "^3.1.0"
53 | }
54 | }
55 |
--------------------------------------------------------------------------------
/app/App_Resources/Android/src/main/res/values/styles.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
17 |
18 |
20 |
21 |
22 |
29 |
30 |
32 |
33 |
34 |
39 |
40 |
42 |
43 |
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/AppIcon.appiconset/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "size" : "29x29",
5 | "idiom" : "iphone",
6 | "filename" : "icon-29.png",
7 | "scale" : "1x"
8 | },
9 | {
10 | "size" : "29x29",
11 | "idiom" : "iphone",
12 | "filename" : "icon-29@2x.png",
13 | "scale" : "2x"
14 | },
15 | {
16 | "size" : "29x29",
17 | "idiom" : "iphone",
18 | "filename" : "icon-29@3x.png",
19 | "scale" : "3x"
20 | },
21 | {
22 | "size" : "40x40",
23 | "idiom" : "iphone",
24 | "filename" : "icon-40@2x.png",
25 | "scale" : "2x"
26 | },
27 | {
28 | "size" : "40x40",
29 | "idiom" : "iphone",
30 | "filename" : "icon-40@3x.png",
31 | "scale" : "3x"
32 | },
33 | {
34 | "size" : "60x60",
35 | "idiom" : "iphone",
36 | "filename" : "icon-60@2x.png",
37 | "scale" : "2x"
38 | },
39 | {
40 | "size" : "60x60",
41 | "idiom" : "iphone",
42 | "filename" : "icon-60@3x.png",
43 | "scale" : "3x"
44 | },
45 | {
46 | "size" : "29x29",
47 | "idiom" : "ipad",
48 | "filename" : "icon-29.png",
49 | "scale" : "1x"
50 | },
51 | {
52 | "size" : "29x29",
53 | "idiom" : "ipad",
54 | "filename" : "icon-29@2x.png",
55 | "scale" : "2x"
56 | },
57 | {
58 | "size" : "40x40",
59 | "idiom" : "ipad",
60 | "filename" : "icon-40.png",
61 | "scale" : "1x"
62 | },
63 | {
64 | "size" : "40x40",
65 | "idiom" : "ipad",
66 | "filename" : "icon-40@2x.png",
67 | "scale" : "2x"
68 | },
69 | {
70 | "size" : "76x76",
71 | "idiom" : "ipad",
72 | "filename" : "icon-76.png",
73 | "scale" : "1x"
74 | },
75 | {
76 | "size" : "76x76",
77 | "idiom" : "ipad",
78 | "filename" : "icon-76@2x.png",
79 | "scale" : "2x"
80 | },
81 | {
82 | "size" : "83.5x83.5",
83 | "idiom" : "ipad",
84 | "filename" : "icon-83.5@2x.png",
85 | "scale" : "2x"
86 | },
87 | {
88 | "size" : "1024x1024",
89 | "idiom" : "ios-marketing",
90 | "filename" : "icon-1024.png",
91 | "scale" : "1x"
92 | }
93 | ],
94 | "info" : {
95 | "version" : 1,
96 | "author" : "xcode"
97 | }
98 | }
--------------------------------------------------------------------------------
/app/data.js:
--------------------------------------------------------------------------------
1 | import { Color } from 'tns-core-modules/color'
2 | import { ObservableArray } from 'tns-core-modules/data/observable-array'
3 | import { CalendarEvent } from 'nativescript-ui-calendar'
4 |
5 | export const getEvents = (count) => {
6 | let now = new Date()
7 | let startDate, endDate, event
8 | let colors = [
9 | new Color(200, 188, 26, 214),
10 | new Color(220, 255, 109, 130),
11 | new Color(255, 55, 45, 255),
12 | new Color(199, 17, 227, 10),
13 | new Color(255, 255, 54, 3),
14 | ]
15 | let events = new Array()
16 | for (let i = 1; i < count; i++) {
17 | startDate = new Date(
18 | now.getFullYear(), now.getMonth(), i * 2, 1
19 | )
20 | endDate = new Date(
21 | now.getFullYear(), now.getMonth(), (i * 2), 3
22 | )
23 | event = new CalendarEvent(
24 | `event ${i}`, startDate, endDate, false, colors[i * 10 % (colors.length - 1)]
25 | )
26 | events.push(event)
27 | if (i % 3 === 0) {
28 | const event = new CalendarEvent(`second ${i}`, startDate, endDate, true, colors[i * 5 % (colors.length - 1)])
29 | events.push(event)
30 | }
31 | }
32 | return events
33 | }
34 |
35 | export const getItemList = (count) => {
36 | let itemList = []
37 | for (let i = 0; i < count; i++) {
38 | itemList.push({
39 | id: i + 1,
40 | name: `Item ${i + 1}`,
41 | description: `Item ${i + 1} description`,
42 | image: `~/assets/images/${i % 6}.jpg`,
43 | })
44 | }
45 | return itemList
46 | }
47 |
48 | export const simpleItemList = getItemList(20)
49 |
50 | export const getMovies = () => {
51 | let movies = new Array();
52 | movies.push({id: 123, name: 'Zootopia'})
53 | movies.push({id: 217, name: 'Captain America'})
54 | movies.push({id: 324, name: 'The Jungle Book'})
55 | return movies;
56 | }
57 |
58 | export class MovieConverter {
59 |
60 | constructor(movies) {
61 | this._movies = movies
62 | }
63 |
64 | convertFrom(id) {
65 | return this._movies.filter((movie) => movie.id === id)[0].name
66 | }
67 |
68 | convertTo(name) {
69 | return this._movies.filter((movie) => movie.name === name)[0].id
70 | }
71 | }
72 |
73 | export const getCountriesData = () => {
74 | return new ObservableArray([
75 | { Country: 'Germany', Amount: 15 },
76 | { Country: 'France', Amount: 13 },
77 | { Country: 'Bulgaria', Amount: 24 },
78 | { Country: 'Spain', Amount: 11 },
79 | { Country: 'USA', Amount: 18 }
80 | ])
81 | }
82 |
--------------------------------------------------------------------------------
/app/components/ItemList.vue:
--------------------------------------------------------------------------------
1 |
2 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
25 |
26 |
27 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
83 |
84 |
86 |
87 |
--------------------------------------------------------------------------------
/app/App_Resources/iOS/LaunchScreen.storyboard:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
--------------------------------------------------------------------------------
/app/views/DataForm.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
8 |
9 |
10 |
13 |
14 |
15 |
16 |
17 |
18 |
145 |
146 |
148 |
--------------------------------------------------------------------------------
/app/App_Resources/iOS/Assets.xcassets/LaunchImage.launchimage/Contents.json:
--------------------------------------------------------------------------------
1 | {
2 | "images" : [
3 | {
4 | "extent" : "full-screen",
5 | "idiom" : "iphone",
6 | "subtype" : "2436h",
7 | "filename" : "Default-1125h.png",
8 | "minimum-system-version" : "11.0",
9 | "orientation" : "portrait",
10 | "scale" : "3x"
11 | },
12 | {
13 | "orientation" : "landscape",
14 | "idiom" : "iphone",
15 | "extent" : "full-screen",
16 | "filename" : "Default-Landscape-X.png",
17 | "minimum-system-version" : "11.0",
18 | "subtype" : "2436h",
19 | "scale" : "3x"
20 | },
21 | {
22 | "extent" : "full-screen",
23 | "idiom" : "iphone",
24 | "subtype" : "736h",
25 | "filename" : "Default-736h@3x.png",
26 | "minimum-system-version" : "8.0",
27 | "orientation" : "portrait",
28 | "scale" : "3x"
29 | },
30 | {
31 | "extent" : "full-screen",
32 | "idiom" : "iphone",
33 | "subtype" : "736h",
34 | "filename" : "Default-Landscape@3x.png",
35 | "minimum-system-version" : "8.0",
36 | "orientation" : "landscape",
37 | "scale" : "3x"
38 | },
39 | {
40 | "extent" : "full-screen",
41 | "idiom" : "iphone",
42 | "subtype" : "667h",
43 | "filename" : "Default-667h@2x.png",
44 | "minimum-system-version" : "8.0",
45 | "orientation" : "portrait",
46 | "scale" : "2x"
47 | },
48 | {
49 | "orientation" : "portrait",
50 | "idiom" : "iphone",
51 | "filename" : "Default@2x.png",
52 | "extent" : "full-screen",
53 | "minimum-system-version" : "7.0",
54 | "scale" : "2x"
55 | },
56 | {
57 | "extent" : "full-screen",
58 | "idiom" : "iphone",
59 | "subtype" : "retina4",
60 | "filename" : "Default-568h@2x.png",
61 | "minimum-system-version" : "7.0",
62 | "orientation" : "portrait",
63 | "scale" : "2x"
64 | },
65 | {
66 | "orientation" : "portrait",
67 | "idiom" : "ipad",
68 | "filename" : "Default-Portrait.png",
69 | "extent" : "full-screen",
70 | "minimum-system-version" : "7.0",
71 | "scale" : "1x"
72 | },
73 | {
74 | "orientation" : "landscape",
75 | "idiom" : "ipad",
76 | "filename" : "Default-Landscape.png",
77 | "extent" : "full-screen",
78 | "minimum-system-version" : "7.0",
79 | "scale" : "1x"
80 | },
81 | {
82 | "orientation" : "portrait",
83 | "idiom" : "ipad",
84 | "filename" : "Default-Portrait@2x.png",
85 | "extent" : "full-screen",
86 | "minimum-system-version" : "7.0",
87 | "scale" : "2x"
88 | },
89 | {
90 | "orientation" : "landscape",
91 | "idiom" : "ipad",
92 | "filename" : "Default-Landscape@2x.png",
93 | "extent" : "full-screen",
94 | "minimum-system-version" : "7.0",
95 | "scale" : "2x"
96 | },
97 | {
98 | "orientation" : "portrait",
99 | "idiom" : "iphone",
100 | "filename" : "Default.png",
101 | "extent" : "full-screen",
102 | "scale" : "1x"
103 | },
104 | {
105 | "orientation" : "portrait",
106 | "idiom" : "iphone",
107 | "filename" : "Default@2x.png",
108 | "extent" : "full-screen",
109 | "scale" : "2x"
110 | },
111 | {
112 | "orientation" : "portrait",
113 | "idiom" : "iphone",
114 | "filename" : "Default-568h@2x.png",
115 | "extent" : "full-screen",
116 | "subtype" : "retina4",
117 | "scale" : "2x"
118 | },
119 | {
120 | "orientation" : "portrait",
121 | "idiom" : "ipad",
122 | "extent" : "to-status-bar",
123 | "scale" : "1x"
124 | },
125 | {
126 | "orientation" : "portrait",
127 | "idiom" : "ipad",
128 | "filename" : "Default-Portrait.png",
129 | "extent" : "full-screen",
130 | "scale" : "1x"
131 | },
132 | {
133 | "orientation" : "landscape",
134 | "idiom" : "ipad",
135 | "extent" : "to-status-bar",
136 | "scale" : "1x"
137 | },
138 | {
139 | "orientation" : "landscape",
140 | "idiom" : "ipad",
141 | "filename" : "Default-Landscape.png",
142 | "extent" : "full-screen",
143 | "scale" : "1x"
144 | },
145 | {
146 | "orientation" : "portrait",
147 | "idiom" : "ipad",
148 | "extent" : "to-status-bar",
149 | "scale" : "2x"
150 | },
151 | {
152 | "orientation" : "portrait",
153 | "idiom" : "ipad",
154 | "filename" : "Default-Portrait@2x.png",
155 | "extent" : "full-screen",
156 | "scale" : "2x"
157 | },
158 | {
159 | "orientation" : "landscape",
160 | "idiom" : "ipad",
161 | "extent" : "to-status-bar",
162 | "scale" : "2x"
163 | },
164 | {
165 | "orientation" : "landscape",
166 | "idiom" : "ipad",
167 | "filename" : "Default-Landscape@2x.png",
168 | "extent" : "full-screen",
169 | "scale" : "2x"
170 | }
171 | ],
172 | "info" : {
173 | "version" : 1,
174 | "author" : "xcode"
175 | }
176 | }
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | const { relative, resolve, sep } = require("path");
2 |
3 | const webpack = require("webpack");
4 | const CleanWebpackPlugin = require("clean-webpack-plugin");
5 | const CopyWebpackPlugin = require("copy-webpack-plugin");
6 | const MiniCssExtractPlugin = require('mini-css-extract-plugin');
7 | const { BundleAnalyzerPlugin } = require("webpack-bundle-analyzer");
8 | const UglifyJsPlugin = require("uglifyjs-webpack-plugin");
9 |
10 | const VueLoaderPlugin = require('vue-loader/lib/plugin');
11 | const NsVueTemplateCompiler = require("nativescript-vue-template-compiler");
12 |
13 | const nsWebpack = require("nativescript-dev-webpack");
14 | const nativescriptTarget = require("nativescript-dev-webpack/nativescript-target");
15 | const { NativeScriptWorkerPlugin } = require("nativescript-worker-loader/NativeScriptWorkerPlugin");
16 |
17 | module.exports = env => {
18 | // Add your custom Activities, Services and other android app components here.
19 | const appComponents = [
20 | "tns-core-modules/ui/frame",
21 | "tns-core-modules/ui/frame/activity",
22 | ];
23 |
24 | const platform = env && (env.android && "android" || env.ios && "ios");
25 | if (!platform) {
26 | throw new Error("You need to provide a target platform!");
27 | }
28 |
29 | const platforms = ["ios", "android"];
30 | const projectRoot = __dirname;
31 |
32 | // Default destination inside platforms//...
33 | const dist = resolve(projectRoot, nsWebpack.getAppPath(platform, projectRoot));
34 | const appResourcesPlatformDir = platform === "android" ? "Android" : "iOS";
35 |
36 | const {
37 | // The 'appPath' and 'appResourcesPath' values are fetched from
38 | // the nsconfig.json configuration file
39 | // when bundling with `tns run android|ios --bundle`.
40 | appPath = "app",
41 | appResourcesPath = "app/App_Resources",
42 |
43 | // You can provide the following flags when running 'tns run android|ios'
44 | snapshot, // --env.snapshot
45 | production, // --env.production
46 | report, // --env.report
47 | hmr, // --env.hmr
48 | } = env;
49 |
50 | const mode = production ? "production" : "development"
51 |
52 | const appFullPath = resolve(projectRoot, appPath);
53 | const appResourcesFullPath = resolve(projectRoot, appResourcesPath);
54 |
55 | const entryModule = nsWebpack.getEntryModule(appFullPath);
56 | const entryPath = `.${sep}${entryModule}.js`;
57 | console.log(`Bundling application for entryPath ${entryPath}...`);
58 |
59 | const config = {
60 | mode: mode,
61 | context: appFullPath,
62 | watchOptions: {
63 | ignored: [
64 | appResourcesFullPath,
65 | // Don't watch hidden files
66 | "**/.*",
67 | ],
68 | },
69 | target: nativescriptTarget,
70 | // target: nativeScriptVueTarget,
71 | entry: {
72 | bundle: entryPath,
73 | },
74 | output: {
75 | pathinfo: false,
76 | path: dist,
77 | libraryTarget: "commonjs2",
78 | filename: "[name].js",
79 | globalObject: "global",
80 | },
81 | resolve: {
82 | extensions: [".vue", ".js", ".scss", ".css"],
83 | // Resolve {N} system modules from tns-core-modules
84 | modules: [
85 | resolve(__dirname, "node_modules/tns-core-modules"),
86 | resolve(__dirname, "node_modules"),
87 | "node_modules/tns-core-modules",
88 | "node_modules",
89 | ],
90 | alias: {
91 | '~': appFullPath,
92 | '@': appFullPath,
93 | 'vue': 'nativescript-vue'
94 | },
95 | // don't resolve symlinks to symlinked modules
96 | symlinks: false,
97 | },
98 | resolveLoader: {
99 | // don't resolve symlinks to symlinked loaders
100 | symlinks: false,
101 | },
102 | node: {
103 | // Disable node shims that conflict with NativeScript
104 | "http": false,
105 | "timers": false,
106 | "setImmediate": false,
107 | "fs": "empty",
108 | "__dirname": false,
109 | },
110 | devtool: "none",
111 | optimization: {
112 | splitChunks: {
113 | cacheGroups: {
114 | vendor: {
115 | name: "vendor",
116 | chunks: "all",
117 | test: (module) => {
118 | const moduleName = module.nameForCondition ? module.nameForCondition() : '';
119 | return /[\\/]node_modules[\\/]/.test(moduleName) ||
120 | appComponents.some(comp => comp === moduleName);
121 |
122 | },
123 | enforce: true,
124 | },
125 | },
126 | },
127 | minimize: Boolean(production),
128 | minimizer: [
129 | new UglifyJsPlugin({
130 | uglifyOptions: {
131 | parallel: true,
132 | cache: true,
133 | output: {
134 | comments: false,
135 | },
136 | compress: {
137 | // The Android SBG has problems parsing the output
138 | // when these options are enabled
139 | 'collapse_vars': platform !== "android",
140 | sequences: platform !== "android",
141 | },
142 | },
143 | }),
144 | ],
145 | },
146 | module: {
147 | rules: [{
148 | test: new RegExp(entryPath),
149 | use: [
150 | // Require all Android app components
151 | platform === "android" && {
152 | loader: "nativescript-dev-webpack/android-app-components-loader",
153 | options: { modules: appComponents },
154 | },
155 |
156 | {
157 | loader: "nativescript-dev-webpack/bundle-config-loader",
158 | options: {
159 | registerPages: true, // applicable only for non-angular apps
160 | loadCss: !snapshot, // load the application css if in debug mode
161 | },
162 | },
163 | ].filter(loader => Boolean(loader)),
164 | },
165 |
166 | // TODO: Removed the rule once https://github.com/vuejs/vue-hot-reload-api/pull/70 is accepted
167 | {
168 | test: resolve(__dirname, 'node_modules/vue-hot-reload-api/dist/index.js'),
169 | use: "../vue-hot-reload-api-patcher"
170 | },
171 |
172 | {
173 | test: /\.css$/,
174 | use: [
175 | 'nativescript-dev-webpack/style-hot-loader',
176 | 'css-hot-loader',
177 | MiniCssExtractPlugin.loader,
178 | { loader: "css-loader", options: { minimize: false, url: false } },
179 | ],
180 | },
181 | {
182 | test: /\.scss$/,
183 | use: [
184 | 'nativescript-dev-webpack/style-hot-loader',
185 | 'css-hot-loader',
186 | MiniCssExtractPlugin.loader,
187 | { loader: "css-loader", options: { minimize: false, url: false } },
188 | "sass-loader",
189 | ],
190 | },
191 | {
192 | test: /\.js$/,
193 | loader: 'babel-loader',
194 | },
195 | {
196 | test: /\.vue$/,
197 | loader: "vue-loader",
198 | options: {
199 | compiler: NsVueTemplateCompiler,
200 | },
201 | },
202 | ],
203 | },
204 | plugins: [
205 | // ... Vue Loader plugin omitted
206 | new MiniCssExtractPlugin({
207 | filename: `app.css`,
208 | }),
209 | // make sure to include the plugin!
210 | new VueLoaderPlugin(),
211 | // Define useful constants like TNS_WEBPACK
212 | new webpack.DefinePlugin({
213 | "global.TNS_WEBPACK": "true",
214 | "TNS_ENV": JSON.stringify(mode)
215 | }),
216 | // Remove all files from the out dir.
217 | new CleanWebpackPlugin([`${dist}/**/*`]),
218 | // Copy native app resources to out dir.
219 | new CopyWebpackPlugin([{
220 | from: `${appResourcesFullPath}/${appResourcesPlatformDir}`,
221 | to: `${dist}/App_Resources/${appResourcesPlatformDir}`,
222 | context: projectRoot,
223 | }]),
224 | // Copy assets to out dir. Add your own globs as needed.
225 | new CopyWebpackPlugin([
226 | { from: "fonts/**" },
227 | { from: "**/*.+(jpg|png)" },
228 | { from: "assets/**/*" },
229 | ], { ignore: [`${relative(appPath, appResourcesFullPath)}/**`] }),
230 | // Generate a bundle starter script and activate it in package.json
231 | new nsWebpack.GenerateBundleStarterPlugin([
232 | "./vendor",
233 | "./bundle",
234 | ]),
235 | // For instructions on how to set up workers with webpack
236 | // check out https://github.com/nativescript/worker-loader
237 | new NativeScriptWorkerPlugin(),
238 | new nsWebpack.PlatformFSPlugin({
239 | platform,
240 | platforms,
241 | }),
242 | // Does IPC communication with the {N} CLI to notify events when running in watch mode.
243 | new nsWebpack.WatchStateLoggerPlugin(),
244 | ],
245 | };
246 |
247 | if (report) {
248 | // Generate report files for bundles content
249 | config.plugins.push(new BundleAnalyzerPlugin({
250 | analyzerMode: "static",
251 | openAnalyzer: false,
252 | generateStatsFile: true,
253 | reportFilename: resolve(projectRoot, "report", `report.html`),
254 | statsFilename: resolve(projectRoot, "report", `stats.json`),
255 | }));
256 | }
257 |
258 | if (snapshot) {
259 | config.plugins.push(new nsWebpack.NativeScriptSnapshotPlugin({
260 | chunk: "vendor",
261 | requireModules: [
262 | "tns-core-modules/bundle-entry-points",
263 | ],
264 | projectRoot,
265 | webpackConfig: config,
266 | }));
267 | }
268 |
269 | if (hmr) {
270 | config.plugins.push(new webpack.HotModuleReplacementPlugin());
271 | }
272 |
273 | return config;
274 | };
275 |
--------------------------------------------------------------------------------