├── .editorconfig
├── .eslintignore
├── .eslintrc.js
├── .gitignore
├── .postcssrc.js
├── .vscode
├── extensions.json
└── settings.json
├── LICENSE.md
├── README.md
├── babel.config.js
├── docs
├── print.png
└── telas.gif
├── jsconfig.json
├── package.json
├── public
├── favicon.ico
├── icons
│ ├── favicon-128x128.png
│ ├── favicon-16x16.png
│ ├── favicon-32x32.png
│ └── favicon-96x96.png
└── montserrat-v15-latin-regular.woff
├── quasar.conf.js
├── src
├── App.vue
├── assets
│ ├── app-logo.png
│ └── quasar-logo-full.svg
├── boot
│ ├── .gitkeep
│ ├── apexcharts.js
│ ├── axios.js
│ └── i18n.js
├── components
│ ├── AccountOverview.vue
│ ├── EssentialLink.vue
│ ├── MyWealth.vue
│ ├── Overview.vue
│ ├── TradeOverview.vue
│ ├── WarrenIcon.vue
│ ├── WealthOverview.vue
│ ├── charts
│ │ ├── BarWealthOverview.vue
│ │ ├── LineAccountOverview.vue
│ │ └── LineOverview.vue
│ ├── lists
│ │ ├── ListAccountLatestMoves.vue
│ │ ├── ListAccountSection.vue
│ │ ├── ListHelpOptions.vue
│ │ ├── ListLatestMoves.vue
│ │ ├── ListProduct.vue
│ │ ├── ListSection.vue
│ │ ├── ListWealthLatestMoves.vue
│ │ └── ListWealthProduct.vue
│ └── scroll
│ │ └── ScrollPage.vue
├── css
│ └── app.css
├── i18n
│ ├── en-us
│ │ └── index.js
│ └── index.js
├── index.template.html
├── layouts
│ └── MainLayout.vue
├── pages
│ ├── Account.vue
│ ├── Error404.vue
│ ├── Index.vue
│ ├── Login.vue
│ ├── Skeleton.vue
│ ├── Trade.vue
│ └── Wealth.vue
├── router
│ ├── index.js
│ └── routes.js
└── store
│ ├── index.js
│ ├── module-example
│ ├── actions.js
│ ├── getters.js
│ ├── index.js
│ ├── mutations.js
│ └── state.js
│ └── store-flag.d.ts
└── yarn.lock
/.editorconfig:
--------------------------------------------------------------------------------
1 | root = true
2 |
3 | [*]
4 | charset = utf-8
5 | indent_style = space
6 | indent_size = 2
7 | end_of_line = lf
8 | insert_final_newline = true
9 | trim_trailing_whitespace = true
10 |
--------------------------------------------------------------------------------
/.eslintignore:
--------------------------------------------------------------------------------
1 | /dist
2 | /src-bex/www
3 | /src-capacitor
4 | /src-cordova
5 | /.quasar
6 | /node_modules
7 |
--------------------------------------------------------------------------------
/.eslintrc.js:
--------------------------------------------------------------------------------
1 | module.exports = {
2 | // https://eslint.org/docs/user-guide/configuring#configuration-cascading-and-hierarchy
3 | // This option interrupts the configuration hierarchy at this file
4 | // Remove this if you have an higher level ESLint config file (it usually happens into a monorepos)
5 | root: true,
6 |
7 | parserOptions: {
8 | parser: 'babel-eslint',
9 | ecmaVersion: 2018, // Allows for the parsing of modern ECMAScript features
10 | sourceType: 'module' // Allows for the use of imports
11 | },
12 |
13 | env: {
14 | browser: true
15 | },
16 |
17 | // Rules order is important, please avoid shuffling them
18 | extends: [
19 | // Base ESLint recommended rules
20 | // 'eslint:recommended',
21 |
22 |
23 | // Uncomment any of the lines below to choose desired strictness,
24 | // but leave only one uncommented!
25 | // See https://eslint.vuejs.org/rules/#available-rules
26 | 'plugin:vue/essential', // Priority A: Essential (Error Prevention)
27 | // 'plugin:vue/strongly-recommended', // Priority B: Strongly Recommended (Improving Readability)
28 | // 'plugin:vue/recommended', // Priority C: Recommended (Minimizing Arbitrary Choices and Cognitive Overhead)
29 |
30 | 'standard'
31 |
32 | ],
33 |
34 | plugins: [
35 | // https://eslint.vuejs.org/user-guide/#why-doesn-t-it-work-on-vue-file
36 | // required to lint *.vue files
37 | 'vue',
38 |
39 | ],
40 |
41 | globals: {
42 | ga: true, // Google Analytics
43 | cordova: true,
44 | __statics: true,
45 | process: true,
46 | Capacitor: true,
47 | chrome: true
48 | },
49 |
50 | // add your custom rules here
51 | rules: {
52 | // allow async-await
53 | 'generator-star-spacing': 'off',
54 | // allow paren-less arrow functions
55 | 'arrow-parens': 'off',
56 | 'one-var': 'off',
57 |
58 | 'import/first': 'off',
59 | 'import/named': 'error',
60 | 'import/namespace': 'error',
61 | 'import/default': 'error',
62 | 'import/export': 'error',
63 | 'import/extensions': 'off',
64 | 'import/no-unresolved': 'off',
65 | 'import/no-extraneous-dependencies': 'off',
66 | 'prefer-promise-reject-errors': 'off',
67 |
68 |
69 | // allow debugger during development only
70 | 'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off'
71 | }
72 | }
73 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | .DS_Store
2 | .thumbs.db
3 | node_modules
4 |
5 | # Quasar core related directories
6 | .quasar
7 | /dist
8 | /docs
9 |
10 | # Cordova related directories and files
11 | /src-cordova/node_modules
12 | /src-cordova/platforms
13 | /src-cordova/plugins
14 | /src-cordova/www
15 |
16 | # Capacitor related directories and files
17 | /src-capacitor/www
18 | /src-capacitor/node_modules
19 |
20 | # BEX related directories and files
21 | /src-bex/www
22 | /src-bex/js/core
23 |
24 | # Log files
25 | npm-debug.log*
26 | yarn-debug.log*
27 | yarn-error.log*
28 |
29 | # Editor directories and files
30 | .idea
31 | *.suo
32 | *.ntvs*
33 | *.njsproj
34 | *.sln
35 |
--------------------------------------------------------------------------------
/.postcssrc.js:
--------------------------------------------------------------------------------
1 | // https://github.com/michael-ciniawsky/postcss-load-config
2 |
3 | module.exports = {
4 | plugins: [
5 | // to edit target browsers: use "browserslist" field in package.json
6 | require('autoprefixer')
7 | ]
8 | }
9 |
--------------------------------------------------------------------------------
/.vscode/extensions.json:
--------------------------------------------------------------------------------
1 | {
2 | "recommendations": [
3 | "dbaeumer.vscode-eslint",
4 |
5 | "octref.vetur"
6 | ],
7 | "unwantedRecommendations": [
8 | "hookyqr.beautify",
9 | "dbaeumer.jshint",
10 | "ms-vscode.vscode-typescript-tslint-plugin"
11 | ]
12 | }
13 |
--------------------------------------------------------------------------------
/.vscode/settings.json:
--------------------------------------------------------------------------------
1 | {
2 | "vetur.validation.template": false,
3 | "vetur.format.enable": false,
4 | "eslint.validate": ["javascript", "javascriptreact", "typescript", "vue"],
5 |
6 | "vetur.experimental.templateInterpolationService": true
7 | }
8 |
--------------------------------------------------------------------------------
/LICENSE.md:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Patrick Monteiro
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | [](https://quasar.dev)
2 | [](https://quasar.dev)
3 | [](https://quasar.dev)
4 | # Quasar Warren Dashboard (quasar-warren)
5 |
6 | A dashboard based on the Warren platform made with Quasar Framework
7 |
8 | ## Screens
9 |
10 | [](https://quasar-warren.surge.sh/)
11 |
12 |
13 | ## Demo
14 |
15 | https://quasar-warren.surge.sh/
16 |
17 | ## Install the dependencies
18 | ```bash
19 | npm install
20 | ```
21 |
22 | ### Start the app in development mode (hot-code reloading, error reporting, etc.)
23 | ```bash
24 | quasar dev
25 | ```
26 |
27 | ### Build the app for production
28 | ```bash
29 | quasar build
30 | ```
31 |
32 | ## Contributing
33 |
34 | When contributing to this repository, please first discuss the change you wish to make via issue, email, or any other method with the owners of this repository before making a change.
35 |
36 | 1. Create your own fork of the project
37 | 2. Clone the fork you made
38 | 3. Do the changes in your fork
39 | 4. Test your changes
40 | 5. Make sure your changes lints
41 | 6. Issue that pull request!
42 |
43 | ## Donations
44 |
45 | I've been contributing to the Vue.js and Quasar community for a few years with lots of content like articles, example projects, videos on my youtube channel. But I do all this for free to try to help those who are starting in this new world of modern front-end.
46 |
47 | If my content has helped you in any way and you want to buy me a coffee, you can use my PICPAY QRCode below. Any value is welcome and encourages me to continue creating content for the community.
48 |
49 |
50 | ### 🇧🇷 **BR**
51 |
52 | Estou há alguns anos contribuindo para a comunidade Vue.js e Quasar com muitos conteúdos como artigos, projetos de exemplos, vídeos no meu canal do youtube. Porém faço tudo isso de forma gratuita para tentar ajudar aqueles que estão iniciando nesse novo mundo de front-end moderno.
53 |
54 | Caso meu algum de meus conteúdos tenha lhe ajudado de alguma forma e você queira me pagar um café, pode utilizar meu QRCode do PICPAY abaixo. Qualquer valor é bem vindo e me estimula a continuar criando conteúdos para a comunidade.
55 |
56 | https://picpay.me/patrickmonteiroo
57 |
58 |
59 |

60 |
61 |
62 |
63 |
64 | ## License
65 |
66 | By contributing, you agree that your contributions will be licensed under its MIT License.
67 |
68 |
--------------------------------------------------------------------------------
/babel.config.js:
--------------------------------------------------------------------------------
1 |
2 | module.exports = {
3 | presets: [
4 | '@quasar/babel-preset-app'
5 | ]
6 | }
7 |
--------------------------------------------------------------------------------
/docs/print.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/docs/print.png
--------------------------------------------------------------------------------
/docs/telas.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/docs/telas.gif
--------------------------------------------------------------------------------
/jsconfig.json:
--------------------------------------------------------------------------------
1 | {
2 | "compilerOptions": {
3 | "baseUrl": ".",
4 | "paths": {
5 | "src/*": [
6 | "src/*"
7 | ],
8 | "app/*": [
9 | "*"
10 | ],
11 | "components/*": [
12 | "src/components/*"
13 | ],
14 | "layouts/*": [
15 | "src/layouts/*"
16 | ],
17 | "pages/*": [
18 | "src/pages/*"
19 | ],
20 | "assets/*": [
21 | "src/assets/*"
22 | ],
23 | "boot/*": [
24 | "src/boot/*"
25 | ],
26 | "vue$": [
27 | "node_modules/vue/dist/vue.esm.js"
28 | ]
29 | }
30 | },
31 | "exclude": [
32 | "dist",
33 | ".quasar",
34 | "node_modules"
35 | ]
36 | }
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "quasar-warren",
3 | "version": "0.0.1",
4 | "description": "A dashboard based on the Warren platform made with Quasar Framework",
5 | "productName": "Quasar Warren Dashboard",
6 | "author": "Patrick Monteiro ,Waldener Junior ",
7 | "private": true,
8 | "scripts": {
9 | "lint": "eslint --ext .js,.vue ./",
10 | "test": "echo \"No test specified\" && exit 0"
11 | },
12 | "dependencies": {
13 | "@quasar/extras": "^1.0.0",
14 | "apexcharts": "^3.23.1",
15 | "axios": "^0.18.1",
16 | "core-js": "^3.6.5",
17 | "quasar": "^1.0.0",
18 | "vue-apexcharts": "^1.6.0",
19 | "vue-i18n": "^8.0.0"
20 | },
21 | "devDependencies": {
22 | "@quasar/app": "^2.0.0",
23 | "babel-eslint": "^10.0.1",
24 | "eslint": "^6.8.0",
25 | "eslint-config-standard": "^14.1.0",
26 | "eslint-loader": "^3.0.3",
27 | "eslint-plugin-import": "^2.14.0",
28 | "eslint-plugin-node": "^11.0.0",
29 | "eslint-plugin-promise": "^4.0.1",
30 | "eslint-plugin-standard": "^4.0.0",
31 | "eslint-plugin-vue": "^6.1.2"
32 | },
33 | "browserslist": [
34 | "last 10 Chrome versions",
35 | "last 10 Firefox versions",
36 | "last 4 Edge versions",
37 | "last 7 Safari versions",
38 | "last 8 Android versions",
39 | "last 8 ChromeAndroid versions",
40 | "last 8 FirefoxAndroid versions",
41 | "last 10 iOS versions",
42 | "last 5 Opera versions"
43 | ],
44 | "engines": {
45 | "node": ">= 10.18.1",
46 | "npm": ">= 6.13.4",
47 | "yarn": ">= 1.21.1"
48 | }
49 | }
50 |
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/public/favicon.ico
--------------------------------------------------------------------------------
/public/icons/favicon-128x128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/public/icons/favicon-128x128.png
--------------------------------------------------------------------------------
/public/icons/favicon-16x16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/public/icons/favicon-16x16.png
--------------------------------------------------------------------------------
/public/icons/favicon-32x32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/public/icons/favicon-32x32.png
--------------------------------------------------------------------------------
/public/icons/favicon-96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/public/icons/favicon-96x96.png
--------------------------------------------------------------------------------
/public/montserrat-v15-latin-regular.woff:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/public/montserrat-v15-latin-regular.woff
--------------------------------------------------------------------------------
/quasar.conf.js:
--------------------------------------------------------------------------------
1 | /*
2 | * This file runs in a Node context (it's NOT transpiled by Babel), so use only
3 | * the ES6 features that are supported by your Node version. https://node.green/
4 | */
5 |
6 | // Configuration for your app
7 | // https://quasar.dev/quasar-cli/quasar-conf-js
8 | /* eslint-env node */
9 |
10 | module.exports = function (/* ctx */) {
11 | return {
12 | // https://quasar.dev/quasar-cli/supporting-ts
13 | supportTS: false,
14 |
15 | // https://quasar.dev/quasar-cli/prefetch-feature
16 | // preFetch: true,
17 |
18 | // app boot file (/src/boot)
19 | // --> boot files are part of "main.js"
20 | // https://quasar.dev/quasar-cli/boot-files
21 | boot: [
22 | 'i18n',
23 | 'axios',
24 | 'apexcharts'
25 | ],
26 |
27 | // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-css
28 | css: [
29 | 'app.css'
30 | ],
31 |
32 | // https://github.com/quasarframework/quasar/tree/dev/extras
33 | extras: [
34 | // 'ionicons-v4',
35 | // 'mdi-v5',
36 | // 'fontawesome-v5',
37 | // 'eva-icons',
38 | // 'themify',
39 | // 'line-awesome',
40 | // 'roboto-font-latin-ext', // this or either 'roboto-font', NEVER both!
41 | 'material-icons', // optional, you are not bound to it
42 | 'mdi-v5',
43 | 'fontawesome-v5',
44 | ],
45 |
46 | // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-build
47 | build: {
48 | vueRouterMode: 'hash', // available values: 'hash', 'history'
49 |
50 | // transpile: false,
51 |
52 | // Add dependencies for transpiling with Babel (Array of string/regex)
53 | // (from node_modules, which are by default not transpiled).
54 | // Applies only if "transpile" is set to true.
55 | // transpileDependencies: [],
56 |
57 | // rtl: false, // https://quasar.dev/options/rtl-support
58 | // preloadChunks: true,
59 | // showProgress: false,
60 | // gzip: true,
61 | // analyze: true,
62 |
63 | // Options below are automatically set depending on the env, set them if you want to override
64 | // extractCSS: false,
65 |
66 | // https://quasar.dev/quasar-cli/handling-webpack
67 | extendWebpack (cfg) {
68 | cfg.module.rules.push({
69 | enforce: 'pre',
70 | test: /\.(js|vue)$/,
71 | loader: 'eslint-loader',
72 | exclude: /node_modules/
73 | })
74 | }
75 | },
76 |
77 | // Full list of options: https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-devServer
78 | devServer: {
79 | https: false,
80 | port: 8080,
81 | open: true // opens browser window automatically
82 | },
83 |
84 | // https://quasar.dev/quasar-cli/quasar-conf-js#Property%3A-framework
85 | framework: {
86 | iconSet: 'material-icons', // Quasar icon set
87 | lang: 'en-us', // Quasar language pack
88 | config: {
89 | brand: {
90 | primary: '#ee2e5d',
91 | secondary: '#f5f6fa',
92 | accent: '#9C27B0',
93 |
94 | dark: '#2e2d33',
95 |
96 | positive: '#1bbc58',
97 | negative: '#C10015',
98 | info: '#007aff',
99 | warning: '#ff9500'
100 | }
101 | },
102 |
103 | // Possible values for "importStrategy":
104 | // * 'auto' - (DEFAULT) Auto-import needed Quasar components & directives
105 | // * 'all' - Manually specify what to import
106 | importStrategy: 'auto',
107 |
108 | // For special cases outside of where "auto" importStrategy can have an impact
109 | // (like functional components as one of the examples),
110 | // you can manually specify Quasar components/directives to be available everywhere:
111 | //
112 | // components: [],
113 | // directives: [],
114 |
115 | // Quasar plugins
116 | plugins: []
117 | },
118 |
119 | // animations: 'all', // --- includes all animations
120 | // https://quasar.dev/options/animations
121 | animations: 'all',
122 |
123 | // https://quasar.dev/quasar-cli/developing-ssr/configuring-ssr
124 | ssr: {
125 | pwa: false
126 | },
127 |
128 | // https://quasar.dev/quasar-cli/developing-pwa/configuring-pwa
129 | pwa: {
130 | workboxPluginMode: 'GenerateSW', // 'GenerateSW' or 'InjectManifest'
131 | workboxOptions: {}, // only for GenerateSW
132 | manifest: {
133 | name: 'Quasar Warren Dashboard',
134 | short_name: 'Quasar Warren Dashboard',
135 | description: 'A dashboard based on the Warren platform made with Quasar Framework',
136 | display: 'standalone',
137 | orientation: 'portrait',
138 | background_color: '#ffffff',
139 | theme_color: '#027be3',
140 | icons: [
141 | {
142 | src: 'icons/icon-128x128.png',
143 | sizes: '128x128',
144 | type: 'image/png'
145 | },
146 | {
147 | src: 'icons/icon-192x192.png',
148 | sizes: '192x192',
149 | type: 'image/png'
150 | },
151 | {
152 | src: 'icons/icon-256x256.png',
153 | sizes: '256x256',
154 | type: 'image/png'
155 | },
156 | {
157 | src: 'icons/icon-384x384.png',
158 | sizes: '384x384',
159 | type: 'image/png'
160 | },
161 | {
162 | src: 'icons/icon-512x512.png',
163 | sizes: '512x512',
164 | type: 'image/png'
165 | }
166 | ]
167 | }
168 | },
169 |
170 | // Full list of options: https://quasar.dev/quasar-cli/developing-cordova-apps/configuring-cordova
171 | cordova: {
172 | // noIosLegacyBuildFlag: true, // uncomment only if you know what you are doing
173 | },
174 |
175 | // Full list of options: https://quasar.dev/quasar-cli/developing-capacitor-apps/configuring-capacitor
176 | capacitor: {
177 | hideSplashscreen: true
178 | },
179 |
180 | // Full list of options: https://quasar.dev/quasar-cli/developing-electron-apps/configuring-electron
181 | electron: {
182 | bundler: 'packager', // 'packager' or 'builder'
183 |
184 | packager: {
185 | // https://github.com/electron-userland/electron-packager/blob/master/docs/api.md#options
186 |
187 | // OS X / Mac App Store
188 | // appBundleId: '',
189 | // appCategoryType: '',
190 | // osxSign: '',
191 | // protocol: 'myapp://path',
192 |
193 | // Windows only
194 | // win32metadata: { ... }
195 | },
196 |
197 | builder: {
198 | // https://www.electron.build/configuration/configuration
199 |
200 | appId: 'quasar-warren'
201 | },
202 |
203 | // More info: https://quasar.dev/quasar-cli/developing-electron-apps/node-integration
204 | nodeIntegration: true,
205 |
206 | extendWebpack (/* cfg */) {
207 | // do something with Electron main process Webpack cfg
208 | // chainWebpack also available besides this extendWebpack
209 | }
210 | }
211 | }
212 | }
213 |
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
11 |
--------------------------------------------------------------------------------
/src/assets/app-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/src/assets/app-logo.png
--------------------------------------------------------------------------------
/src/assets/quasar-logo-full.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
192 |
--------------------------------------------------------------------------------
/src/boot/.gitkeep:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/patrickmonteiro/quasar-warren/a3e46a34e180f2ebc020ebca8f7eeb9ebe15b331/src/boot/.gitkeep
--------------------------------------------------------------------------------
/src/boot/apexcharts.js:
--------------------------------------------------------------------------------
1 | import VueApexCharts from 'vue-apexcharts'
2 | import Vue from 'vue'
3 |
4 | Vue.use(VueApexCharts)
5 | Vue.component('apexchart', VueApexCharts)
6 |
--------------------------------------------------------------------------------
/src/boot/axios.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import axios from 'axios'
3 |
4 | Vue.prototype.$axios = axios
5 |
--------------------------------------------------------------------------------
/src/boot/i18n.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueI18n from 'vue-i18n'
3 | import messages from 'src/i18n'
4 |
5 | Vue.use(VueI18n)
6 |
7 | const i18n = new VueI18n({
8 | locale: 'en-us',
9 | fallbackLocale: 'en-us',
10 | messages
11 | })
12 |
13 | export default ({ app }) => {
14 | // Set i18n instance on app
15 | app.i18n = i18n
16 | }
17 |
18 | export { i18n }
19 |
--------------------------------------------------------------------------------
/src/components/AccountOverview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Conta
6 |
7 |
8 |
9 |
10 | R$ 4.122,63
11 |
12 |
13 |
14 | R$ 124,91 (100% do CDI)
15 |
16 |
22 |
23 |
24 |
25 |
26 |
27 |
32 |
--------------------------------------------------------------------------------
/src/components/EssentialLink.vue:
--------------------------------------------------------------------------------
1 |
2 |
7 |
13 |
14 |
15 |
19 | {{ title }}
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
59 |
60 |
65 |
--------------------------------------------------------------------------------
/src/components/MyWealth.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Minhas Carteiras
4 |
8 |
9 |
10 |
7k Avançado
11 |
R$ 7.654,85
12 |
13 |
14 |
15 |
16 |
17 |
36 |
56 |
--------------------------------------------------------------------------------
/src/components/Overview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Visão Geral
6 |
7 |
12 |
13 |
14 | R$ 4.122,63
15 |
16 |
17 |
18 | R$ 124,91
19 |
20 |
26 |
27 |
28 |
29 |
30 |
31 |
36 |
--------------------------------------------------------------------------------
/src/components/TradeOverview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Trade
6 |
7 |
8 |
9 |
13 |
14 |
FAÇA SEU PRIMEIRO DEPÓSITO EM TRADE
15 |
Transfira ou deposite para comprar seus primeiros ativos.
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
29 |
30 |
42 |
--------------------------------------------------------------------------------
/src/components/WarrenIcon.vue:
--------------------------------------------------------------------------------
1 |
2 |
25 |
26 |
--------------------------------------------------------------------------------
/src/components/WealthOverview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Carteiras
6 |
7 |
8 |
9 |
10 | R$ 17.852,63
11 |
12 |
13 |
14 | R$ 962,91
15 |
16 |
22 |
23 |
24 |
25 |
26 |
27 |
32 |
--------------------------------------------------------------------------------
/src/components/charts/BarWealthOverview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
17 | {{ btn }}
18 |
19 |
20 |
21 |
22 |
103 |
--------------------------------------------------------------------------------
/src/components/charts/LineAccountOverview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
9 |
17 | {{ btn }}
18 |
19 |
20 |
21 |
22 |
77 |
--------------------------------------------------------------------------------
/src/components/charts/LineOverview.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
12 | {{ btn }}
13 |
14 |
15 |
16 |
17 |
72 |
--------------------------------------------------------------------------------
/src/components/lists/ListAccountLatestMoves.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Últimas movimentações
4 |
5 |
12 |
13 |
14 | {{ section.title }}
16 | {{ section.date }}
17 |
18 |
19 |
20 | R$ {{ section.amount }}
22 |
23 |
28 | Concluído
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | Ver Todas
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
81 |
--------------------------------------------------------------------------------
/src/components/lists/ListAccountSection.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 | 371 - Warren Brasil
10 | Banco
11 |
12 |
13 |
20 |
21 | {{ section.title }}
22 | {{ section.amount }}
23 |
24 |
25 |
26 |
32 |
33 |
34 |
35 |
40 |
41 |
42 | * Só é possivel receber transferências de uma conta da mesma
43 | titularidade
45 |
46 |
47 |
48 |
49 |
50 |
51 |
85 |
--------------------------------------------------------------------------------
/src/components/lists/ListHelpOptions.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
11 |
12 |
19 |
20 |
21 | {{ item.title }}
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
41 |
--------------------------------------------------------------------------------
/src/components/lists/ListLatestMoves.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Últimas movimentações
4 |
5 |
12 |
13 | {{ section.title }}
14 | {{ section.date }}
15 |
16 |
17 | R$ {{ section.amount }}
18 |
19 |
20 | Concluído
21 |
22 |
23 |
24 |
25 |
26 |
31 |
32 |
33 | Ver Todas
34 |
35 |
36 |
37 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
81 |
--------------------------------------------------------------------------------
/src/components/lists/ListProduct.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Por Seção
4 |
5 |
12 |
13 |
20 |
21 |
22 | {{ section.title }}
23 | {{ section.amount }}
24 |
25 |
26 | {{ section.percent }}%
27 | {{ section.percent2 }}%
28 |
29 |
30 |
31 |
32 |
33 |
34 |
67 |
--------------------------------------------------------------------------------
/src/components/lists/ListSection.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Por Seção
4 |
5 |
12 |
13 |
20 |
21 |
22 |
23 | {{ section.title }}
24 | {{ section.amount }}
25 |
26 |
27 |
28 | {{ section.percent }}%
29 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
70 |
--------------------------------------------------------------------------------
/src/components/lists/ListWealthLatestMoves.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Últimas movimentações
4 |
5 |
12 |
13 |
14 | {{ section.title }}
16 | {{ section.date }}
17 |
18 |
19 |
20 | R$ {{ section.amount }}
22 |
23 |
28 | Concluído
29 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 | Ver Todas
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
81 |
--------------------------------------------------------------------------------
/src/components/lists/ListWealthProduct.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 | Alocação
4 |
5 |
12 |
13 |
20 |
21 |
22 | {{ section.title }}
23 |
24 |
25 |
26 | {{ section.percent }}%
27 |
29 |
30 |
31 |
32 |
33 |
34 |
35 |
68 |
--------------------------------------------------------------------------------
/src/components/scroll/ScrollPage.vue:
--------------------------------------------------------------------------------
1 |
2 |
6 |
7 |
8 |
9 |
10 |
15 |
--------------------------------------------------------------------------------
/src/css/app.css:
--------------------------------------------------------------------------------
1 | /* app global css */
2 |
3 | :root {
4 | --bg-dark: #171837;
5 | --bg-secondary: #171837;
6 | --dark: #27274C;
7 | }
8 |
9 | @font-face {
10 | font-family: montserrat;
11 | src: url(/montserrat-v15-latin-regular.woff);
12 | font-display: swap;
13 | }
14 |
15 | .montserrat {
16 | font-family: 'montserrat';
17 | font-style: normal;
18 | font-weight: bold;
19 | }
20 |
21 | .text-body1 {
22 | font-size: 19px;
23 | }
24 |
25 | .q-item__label--caption {
26 | font-size: 15px;
27 | }
28 |
29 | body.body--dark {
30 | background: var(--bg-dark);
31 | --q-color-dark: #FFF !important;
32 | --q-color-secondary: var(--bg-dark) !important;
33 | }
34 |
35 | div.container-logo {
36 | background-color: #ee2e5d;
37 | }
38 | .fade-enter-active,
39 | .fade-leave-active {
40 | transition: opacity 1s;
41 | }
42 | .fade-enter,
43 | .fade-leave-to {
44 | opacity: 0.2;
45 | }
46 | @media screen and (min-width: 320px) and (max-width: 737px) {
47 | div.container-logo {
48 | height: 183px !important;
49 | width: 100% !important;
50 | }
51 | }
52 | #btn-login {
53 | font-size: 16px !important ;
54 | font-weight: bold;
55 | height: 70px;
56 | }
57 | .divider {
58 | border-top: 1px solid #ebecf3;
59 | }
--------------------------------------------------------------------------------
/src/i18n/en-us/index.js:
--------------------------------------------------------------------------------
1 | // This is just an example,
2 | // so you can safely delete all default props below
3 |
4 | export default {
5 | failed: 'Action failed',
6 | success: 'Action was successful'
7 | }
8 |
--------------------------------------------------------------------------------
/src/i18n/index.js:
--------------------------------------------------------------------------------
1 | import enUS from './en-us'
2 |
3 | export default {
4 | 'en-us': enUS
5 | }
6 |
--------------------------------------------------------------------------------
/src/index.template.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | <%= productName %>
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
--------------------------------------------------------------------------------
/src/layouts/MainLayout.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
11 | P
12 |
13 |
14 |
15 |
21 |
27 |
28 |
29 |
30 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
50 |
58 |
59 |
60 |
61 |
69 |
70 |
71 |
72 |
73 |
74 |
80 |
81 |
82 | Menu
83 |
84 |
85 |
86 |
87 |
92 |
93 |
94 |
95 |
96 |
97 |
103 |
104 |
105 |
106 |
107 |
108 |
109 |
204 |
205 |
210 |
--------------------------------------------------------------------------------
/src/pages/Account.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
55 |
--------------------------------------------------------------------------------
/src/pages/Error404.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | 404
6 |
7 |
8 |
9 | Oops. Nothing here...
10 |
11 |
12 |
21 |
22 |
23 |
24 |
25 |
30 |
--------------------------------------------------------------------------------
/src/pages/Index.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
73 |
--------------------------------------------------------------------------------
/src/pages/Login.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
13 |
14 |

19 |
26 | quasar warren
27 |
28 |
29 |
30 |
31 |
32 |
39 | Acessar minha conta
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
60 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
86 |
87 |
88 |
96 |
97 |
98 |
102 | Ainda não sou cliente
103 |
104 |
108 | Esqueci minha senha
109 |
110 |
111 |
112 |
113 |
114 |
115 |
116 |
117 |
144 |
171 |
--------------------------------------------------------------------------------
/src/pages/Skeleton.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
30 |
31 |
32 |
36 |
37 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
56 |
57 |
58 |
59 |
60 |
61 |
76 |
--------------------------------------------------------------------------------
/src/pages/Trade.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
26 |
27 |
28 |
29 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
66 |
--------------------------------------------------------------------------------
/src/pages/Wealth.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
60 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import VueRouter from 'vue-router'
3 |
4 | import routes from './routes'
5 |
6 | Vue.use(VueRouter)
7 |
8 | /*
9 | * If not building with SSR mode, you can
10 | * directly export the Router instantiation;
11 | *
12 | * The function below can be async too; either use
13 | * async/await or return a Promise which resolves
14 | * with the Router instance.
15 | */
16 |
17 | export default function (/* { store, ssrContext } */) {
18 | const Router = new VueRouter({
19 | scrollBehavior: () => ({ x: 0, y: 0 }),
20 | routes,
21 |
22 | // Leave these as they are and change in quasar.conf.js instead!
23 | // quasar.conf.js -> build -> vueRouterMode
24 | // quasar.conf.js -> build -> publicPath
25 | mode: process.env.VUE_ROUTER_MODE,
26 | base: process.env.VUE_ROUTER_BASE
27 | })
28 |
29 | return Router
30 | }
31 |
--------------------------------------------------------------------------------
/src/router/routes.js:
--------------------------------------------------------------------------------
1 | import Index from 'pages/Index.vue'
2 | import Account from 'pages/Account.vue'
3 | import Wealth from 'pages/Wealth.vue'
4 | import Trade from 'pages/Trade.vue'
5 | const routes = [
6 | {
7 | path: '/',
8 | name: 'login',
9 | component: () => import('pages/Login')
10 | },
11 | {
12 | path: '/app',
13 | component: () => import('layouts/MainLayout.vue'),
14 | children: [
15 | { path: '', name: 'dashboard', component: Index, meta: { skeleton: true } },
16 | { path: 'cash', name: 'cash', component: Account, meta: { skeleton: true } },
17 | { path: 'wealth', name: 'wealth', component: Wealth, meta: { skeleton: true } },
18 | { path: 'trade', name: 'trade', component: Trade, meta: { skeleton: true } }
19 | ]
20 | },
21 | // Always leave this as last one,
22 | // but you can also remove it
23 | {
24 | path: '*',
25 | component: () => import('pages/Error404.vue')
26 | }
27 | ]
28 |
29 | export default routes
30 |
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 |
4 | // import example from './module-example'
5 |
6 | Vue.use(Vuex)
7 |
8 | /*
9 | * If not building with SSR mode, you can
10 | * directly export the Store instantiation;
11 | *
12 | * The function below can be async too; either use
13 | * async/await or return a Promise which resolves
14 | * with the Store instance.
15 | */
16 |
17 | export default function (/* { ssrContext } */) {
18 | const Store = new Vuex.Store({
19 | modules: {
20 | // example
21 | },
22 |
23 | // enable strict mode (adds overhead!)
24 | // for dev mode only
25 | strict: process.env.DEBUGGING
26 | })
27 |
28 | return Store
29 | }
30 |
--------------------------------------------------------------------------------
/src/store/module-example/actions.js:
--------------------------------------------------------------------------------
1 | export function someAction (/* context */) {
2 | }
3 |
--------------------------------------------------------------------------------
/src/store/module-example/getters.js:
--------------------------------------------------------------------------------
1 | export function someGetter (/* state */) {
2 | }
3 |
--------------------------------------------------------------------------------
/src/store/module-example/index.js:
--------------------------------------------------------------------------------
1 | import state from './state'
2 | import * as getters from './getters'
3 | import * as mutations from './mutations'
4 | import * as actions from './actions'
5 |
6 | export default {
7 | namespaced: true,
8 | getters,
9 | mutations,
10 | actions,
11 | state
12 | }
13 |
--------------------------------------------------------------------------------
/src/store/module-example/mutations.js:
--------------------------------------------------------------------------------
1 | export function someMutation (/* state */) {
2 | }
3 |
--------------------------------------------------------------------------------
/src/store/module-example/state.js:
--------------------------------------------------------------------------------
1 | export default function () {
2 | return {
3 | //
4 | }
5 | }
6 |
--------------------------------------------------------------------------------
/src/store/store-flag.d.ts:
--------------------------------------------------------------------------------
1 | // THIS FEATURE-FLAG FILE IS AUTOGENERATED,
2 | // REMOVAL OR CHANGES WILL CAUSE RELATED TYPES TO STOP WORKING
3 | import "quasar/dist/types/feature-flag";
4 |
5 | declare module "quasar/dist/types/feature-flag" {
6 | interface QuasarFeatureFlags {
7 | store: true;
8 | }
9 | }
10 |
--------------------------------------------------------------------------------